You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To reproduce:
On a riak 1.3 devrel build, with backend riak_kv_eleveldb_backend, riak Search enabled, and the following default properties in app.config (these shouldn't matter, adding them for completeness):
Now, restoring the buckets via DataMigrator without re-enabling Search indexing on those buckets works just fine.
But, if you enable indexing and try to restore, it errors out:
$ bin/search-cmd install test_bucket
$ java -jar ~/riak/riak-data-migrator-0.2.5/riak-data-migrator-0.2.5.jar -l -a -r ~/data/Test -h 127.0.0.1 -p 10017 -H 10018
Destination PB Port not specified, using the default: 8087
Loading bucket _rsid_test_bucket
100% completed. Wrote 1 @ 8 obj/sec
Loading bucket test_bucket
0% completed. Wrote 0 @ 0 obj/sec
Load Summary:
Bucket Objects Seconds Objs/Sec Size/KB Val. Err.
_rsid_test_bucket 1 0.1 8.8 0 0
test_bucket ERROR ERROR ERROR ERROR ERROR
Total: 2 1 0.1 8.8 0 0
Data migrator error log contents:
09:05:45.285 [RiakObjectWriterThread-0] ERROR c.b.p.datamigrator.riak.ClientWriter - Max store retries 3 reached on key test_bucket / key1
09:05:45.292 [main] ERROR c.b.p.datamigrator.BucketLoader - Riak error storing value to test_bucket
com.basho.riak.pbc.RiakError: {precommit_fail,
{hook_crashed,{riak_search_kv_hook,precommit,error,function_clause}}}
at com.basho.riak.pbc.RiakConnection.receive(RiakConnection.java:125) ~[riak-client-1.1.0.jar:na]
at com.basho.riak.pbc.RiakClient.store(RiakClient.java:581) ~[riak-client-1.1.0.jar:na]
at com.basho.riak.client.raw.pbc.PBClientAdapter.store(PBClientAdapter.java:177) ~[riak-client-1.1.0.jar:na]
at com.basho.riak.client.raw.pbc.PBClientAdapter.store(PBClientAdapter.java:197) ~[riak-client-1.1.0.jar:na]
at com.basho.proserv.datamigrator.riak.ClientWriter.storeRiakObject(ClientWriter.java:37) ~[riak-data-migrator-0.2.5.jar:na]
at com.basho.proserv.datamigrator.riak.ClientWriter.storeRiakObject(ClientWriter.java:48) ~[riak-data-migrator-0.2.5.jar:na]
at com.basho.proserv.datamigrator.riak.ClientWriter.storeRiakObject(ClientWriter.java:48) ~[riak-data-migrator-0.2.5.jar:na]
at com.basho.proserv.datamigrator.riak.ClientWriter.storeRiakObject(ClientWriter.java:48) ~[riak-data-migrator-0.2.5.jar:na]
at com.basho.proserv.datamigrator.riak.ClientWriter.storeRiakObject(ClientWriter.java:28) ~[riak-data-migrator-0.2.5.jar:na]
at com.basho.proserv.datamigrator.riak.ThreadedClientDataWriter$RiakObjectWriterThread.run(ThreadedClientDataWriter.java:187) ~[riak-data-migrator-0.2.5.jar:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) ~[na:1.6.0_51]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) ~[na:1.6.0_51]
at java.util.concurrent.FutureTask.run(FutureTask.java:138) ~[na:1.6.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) ~[na:1.6.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) ~[na:1.6.0_51]
at java.lang.Thread.run(Thread.java:680) ~[na:1.6.0_51]
Ok, the error above results from backing up the _rsid_* buckets (such as the _rsid_test_bucket that automatically gets created in the repro steps above).
These are internal-use only buckets created by Riak Search, and contain the documents that search actually indexed.
The to-do issue for filtering them out is here: #4
As for this bug, for current versions of the DataMigrator, it can be avoided by manually deleting _rsid_* directories in the exported data dirs. I'll add that to the README notes.
Closing.
To reproduce:
On a riak 1.3 devrel build, with backend
riak_kv_eleveldb_backend
, riak Search enabled, and the following default properties in app.config (these shouldn't matter, adding them for completeness):{anti_entropy, {on, []}}
Launch riak, enable indexing on a bucket, and insert a test object:
Double-check the bucket list:
Now back up the cluster via DataMigrator 0.2.5:
Stop riak and clear the data directory:
Now, restoring the buckets via DataMigrator without re-enabling Search indexing on those buckets works just fine.
But, if you enable indexing and try to restore, it errors out:
Data migrator error log contents:
Riak error log contents
At this point (after trying to restore search-indexed buckets via DataMigrator), a plain HTTP put to the same bucket results in the same error:
So, something is getting borked during the restoration process.
The text was updated successfully, but these errors were encountered: