serhiy-bzhezytskyy opened a new issue, #79:
URL: https://github.com/apache/solr-orbit/issues/79

   ### Description
   
   A converted workload aborts on the task that waits for merges to finish. 
OpenSearch
   Benchmark has no operation type for that wait — workloads express it as an 
`index-stats`
   call retried until the active merge count reaches zero:
   
   ```json
   {
     "name": "wait-until-merges-finish",
     "operation-type": "index-stats",
     "index": "_all",
     "condition": { "path": "_all.total.merges.current", "expected-value": 0 },
     "retry-until-success": true,
     "include-in-reporting": false
   }
   ```
   
   The converter copies `"operation-type": "index-stats"` through unchanged, 
and no runner is
   registered for it, so `runner_for` raises and the run stops.
   
   Solr Orbit already has the operation this is meant to be: `wait-for-merges`, 
registered
   since the initial port (`57387ed4`), whose runner polls node metrics in its 
own loop. The
   hand-written Solr `nyc_taxis` in `solr-orbit-workloads` uses it. So this is 
not a missing
   feature — the converter simply does not reach for it.
   
   ### To reproduce
   
   On `main` at f0883807, convert upstream `nyc_taxis` and run that task on its 
own against
   the default test procedure:
   
   ```
   solr-orbit run --workload-path <converted>/nyc_taxis 
--pipeline=benchmark-only \
     --target-hosts=localhost:8983 --include-tasks=wait-until-merges-finish
   ```
   
   ```
   [ERROR] ❌ Cannot run. Benchmark operation failed:
   Worker ID: 0
   Task: wait-until-merges-finish
   Workload: nyc_taxis
   Test Procedure: append-no-conflicts
   Cause: Unknown
   Error: No runner available for operation type [index-stats]
        No runner available for operation type [index-stats]
   ```
   
   Exit code 64.
   
   ### Expected behavior
   
   An `index-stats` operation whose condition polls the merge count to zero 
should be
   converted to `wait-for-merges`, with the polling OpenSearch expresses 
through `condition`
   and `retry-until-success` carried by the runner's own `retry-wait-period` and
   `max-wait-seconds`.
   
   The hand-written Solr `nyc_taxis` in `solr-orbit-workloads` already states 
the intended
   result, so there is a target to compare against:
   
   ```json
   {
     "name": "wait-until-merges-finish",
     "operation-type": "wait-for-merges",
     "retry-wait-period": 2.0,
     "max-wait-seconds": 600,
     "include-in-reporting": false
   }
   ```
   
   ### Additional context
   
   In the default test procedure the merge wait arrives through
   `common_operations/force_merge.json`, which is collected after `index` and
   `refresh-after-index` — so a full converted `nyc_taxis` run fails only once 
the corpus is
   indexed and merged. The expensive part is already spent when it aborts.
   
   It is not specific to `nyc_taxis`. Because the idiom lives in that shared 
fragment, it
   reaches the converted output of `clickbench`, `geoshape`, `http_logs`, 
`neural_search`,
   `nyc_taxis`, `pmc` and `treccovid_semantic_search` — 16 operation 
definitions across 13
   generated files, all of them this idiom.
   
   A 17th match in `geonames/test_procedures/default.json` is a different thing 
and not part of
   this report: `"operation": "index-stats"` there is a schedule reference to 
OpenSearch
   Benchmark's built-in operation of that name, which the workload never 
defines. It also has no
   Solr runner, but the fix is not the same one.
   
   Two further source occurrences are out of reach for a third reason —
   `clickbench/test_procedures/common/snapshot-ops.json` and
   
`noaa_semantic_search/test_procedures/semantic-search-common/check-status-add-resources-no-index.json`
   sit in nested directories under `test_procedures/`, and the converter only 
walks the
   top-level `.json` files there, so those files are absent from the output 
entirely. That is a
   separate defect; I will report it on its own.
   
   ### Version
   
   `main` at f0883807.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to