Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IndexError: list index out of range when excluding tasks #1901

Open
inqueue opened this issue Jan 10, 2025 · 0 comments
Open

IndexError: list index out of range when excluding tasks #1901

inqueue opened this issue Jan 10, 2025 · 0 comments
Labels
bug Something's wrong

Comments

@inqueue
Copy link
Member

inqueue commented Jan 10, 2025

The following error is encountered when excluding some tasks in a track challenge:

2025-01-10 16:34:55,340 ActorAddr-(T|:42311)/PID:55677 esrally.actor ERROR Error in driver
Traceback (most recent call last):

  File "/home/esbench/rally/esrally/actor.py", line 92, in guard
    return f(self, msg, sender)
           ^^^^^^^^^^^^^^^^^^^^

  File "/home/esbench/rally/esrally/driver/driver.py", line 307, in receiveMsg_WakeupMessage
    self.driver.update_progress_message()

  File "/home/esbench/rally/esrally/driver/driver.py", line 985, in update_progress_message
    tasks = ",".join([t.name for t in self.tasks_per_join_point[self.current_step]])
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^

IndexError: list index out of range

2025-01-10 16:34:55,758 ActorAddr-(T|:41715)/PID:55660 esrally.actor INFO Received a benchmark failure from [ActorAddr-(T|:42311)] and will forward it now.
2025-01-10 16:34:55,759 -not-actor-/PID:55631 esrally.racecontrol ERROR A benchmark failure has occurred
2025-01-10 16:34:55,760 -not-actor-/PID:55631 esrally.racecontrol INFO Telling benchmark actor to exit.
2025-01-10 16:34:55,341 ActorAddr-(T|:42311)/PID:55677 esrally.actor ERROR Main driver received a fatal exception from a load generator. Shutting down.
2025-01-10 16:34:55,341 ActorAddr-(T|:42311)/PID:55677 esrally.metrics INFO Closing metrics store.
2025-01-10 16:34:55,760 -not-actor-/PID:55631 esrally.rally ERROR Cannot run subcommand [race].
Traceback (most recent call last):
  File "/home/esbench/rally/esrally/rally.py", line 1195, in dispatch_sub_command
    race(cfg, args.kill_running_processes)
  File "/home/esbench/rally/esrally/rally.py", line 942, in race
    with_actor_system(racecontrol.run, cfg)
  File "/home/esbench/rally/esrally/rally.py", line 972, in with_actor_system
    runnable(cfg)
  File "/home/esbench/rally/esrally/racecontrol.py", line 408, in run
    raise e
  File "/home/esbench/rally/esrally/racecontrol.py", line 405, in run
    pipeline(cfg)
  File "/home/esbench/rally/esrally/racecontrol.py", line 74, in __call__
    self.target(cfg)
  File "/home/esbench/rally/esrally/racecontrol.py", line 344, in benchmark_only
    return race(cfg, external=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/esbench/rally/esrally/racecontrol.py", line 302, in race
    raise exceptions.RallyError(result.message, result.cause)
esrally.exceptions.RallyError: Traceback (most recent call last):
  File "/home/esbench/rally/esrally/actor.py", line 92, in guard
    return f(self, msg, sender)
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/esbench/rally/esrally/driver/driver.py", line 307, in receiveMsg_WakeupMessage
    self.driver.update_progress_message()
  File "/home/esbench/rally/esrally/driver/driver.py", line 985, in update_progress_message
    tasks = ",".join([t.name for t in self.tasks_per_join_point[self.current_step]])
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
IndexError: list index out of range

2025-01-10 16:34:55,762 ActorAddr-(T|:42311)/PID:55677 esrally.actor INFO Main driver received ActorExitRequest and will terminate all load generators.

The challenge lives in track in a private repo, so I have made it available for viewing at https://gist.github.com/inqueue/b0672d39f505e51adf03583da8d90b99. Tasks are excluded with the following race argument:

esrally race --exclude-tasks="tag:setup,add_filter_alias,type:bulk" ...

Benchmark characteristics:

  1. Setup tasks (delete/create data streams, templates, ingest pipeline, etc.)
  2. Sleep
  3. A parallel task that includes a single bulk indexing operation. This can probably be changed to a non-parallel task.
  4. A single bulk indexing task.
  5. A single raw request task to add a filtered alias for search.
  6. A parallel task that is looped for N scaling steps in a list. This task executes search requests with a different number of clients on each iteration. The failure occurs after the last iteration finishes.

The benchmark executes without error when not excluding tasks. To the user, it appears the first set of search tasks in the loop finishes very quickly (within a second), and Rally immediately moving on to the second iteration where execution occurs normally within the configured runtime. The IndexError occurs once the final Race task is completed.

Running range_10,created_at_histo_10,filter_query_10,alias_bool_query_1...     [100% done] <-- reached 100% in an instant
Running filter_query_20,default_20,created_at_histo_20,alias_bool_query...     [ 17% done] <-- ends up taking the full time-period and finshes successfully
@inqueue inqueue added the bug Something's wrong label Jan 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something's wrong
Projects
None yet
Development

No branches or pull requests

1 participant