int ret = search.init(job_id, pinfo);
if (ret < 0) {
+ if (ret == -EEXIST) {
+ cerr << "cannot init new search, job already exists" << std::endl;
+ }
+ if (ret == -ENOENT) {
+ cerr << "job not found" << std::endl;
+ }
return -ret;
}
ret = search.run();
return r;
}
-
-
return 0;
}
search_info.job_name = job_name;
search_info.num_shards = (info->num_shards ? info->num_shards : DEFAULT_NUM_SHARDS);
search_stage = RGWOrphanSearchStage(ORPHAN_SEARCH_STAGE_INIT);
+
+ RGWOrphanSearchState state;
+ r = orphan_store.read_job(job_name, state);
+ if (r >= 0) {
+ lderr(store->ctx()) << "ERROR: job already exists" << dendl;
+ return -EEXIST;
+ }
r = save_state();
if (r < 0) {
lderr(store->ctx()) << "ERROR: failed to write state ret=" << r << dendl;
if (cur_linked == key_fp) {
ldout(store->ctx(), 20) << "linked: " << key << dendl;
- cout << "good: " << key << std::endl;
continue;
}