[Ezbench-dev] ezBench errors & error handling
Martin Peres
martin.peres at free.fr
Fri Apr 28 15:45:25 UTC 2017
On 27/04/17 18:45, Eero Tamminen wrote:
> Hi,
>
> Run-time errors...
>
> First got following:
> ----------------------------------------------
> ./core.sh -P mesa -r 1 -b gputest:fur:1080p:fullscreen -b
> gputest:pixmark_volplosion:1080p:fullscreen -b
> gputest:pixmark_julia_fp32:1080p:fullscreen -b
> gputest:pixmark_piano:1080p:fullscreen -b gputest:tess_x64:576p:window
> -b unigine:heaven:1080p:fullscreen HEAD
> Configuration scripts used:
> Repo type = git, directory = work/upstream/mesa, version = 4e1f3af,
> deployed version =
> Tests that will be run: gputest:fur:1080p:fullscreen
> gputest:pixmark_volplosion:1080p:fullscreen
> gputest:pixmark_julia_fp32:1080p:fullscreen
> gputest:pixmark_piano:1080p:fullscreen gputest:tess_x64:576p:window
> unigine:heaven:1080p:fullscreen
> Testing 1 versions: 4e1f3af
> Estimated finish date: 17-04-27 - 18:14:32 (00h:09m:15s)
>
> WARNING: automatic sudo rights are missing for function
> 'xserver_setup_start'
> WARNING: automatic sudo rights are missing for function
> 'cpu_reclocking_disable_start'
> WARNING: automatic sudo rights are missing for function
> 'cpu_reclocking_disable_stop'
> rm: cannot remove 'logs/2017-04-27-18:05:17/lock': No such file or
> directory
> Exiting with error code 6
> ----------------------------------------------
>
> This was with just cloned ezBench repository i.e. empty logs directory
> before calling core.sh. The script created
> "logs/2017-04-27-18\:05\:17/" and "results" file under it before breaking.
>
> If WARNING issues prevent it from running, they should be reported as
> ERRORs.
>
>
> Accidentally giving bad repository to ezbench results in nested errors.
> Maybe error checking for that could also be improved:
> ----------------------------------------------
> $ ./ezbench -p ~/work/upstream/mesa/ -r 3 -b
> gputest:fur:1080p:fullscreen -b
> gputest:pixmark_volplosion:1080p:fullscreen -b
> gputest:pixmark_julia_fp32:1080p:fullscreen -b
> gputest:pixmark_piano:1080p:fullscreen -b gputest:tess_x64:576p:window
> -b unigine:heaven:1080p:fullscreen -c "911391b 637e571 bf3cdf0 c942faf
> 2f8d6bd 8307124 f7b1371 39644fa ec30149" mesa-regressions
> 2017-04-27 17:56:19: (II) Created report 'mesa-regressions'
> Traceback (most recent call last):
> File "ezbench/python-modules/ezbench/smartezbench.py", line 420, in
> set_profile
> runner = self.__create_ezbench(profile=profile)
> File "ezbench/python-modules/ezbench/smartezbench.py", line 341, in
> __create_ezbench
> runner.set_profile(profile)
> File "ezbench/python-modules/ezbench/runner.py", line 442, in
> set_profile
> self.__send_command__("profile,{}".format(profile))
> File "ezbench/python-modules/ezbench/runner.py", line 390, in
> __send_command__
> "err_code":err_code, "err_str":errstr}))
> ezbench.runner.RunnerError: {'err_str': 'The profile does not exist',
> 'msg': "The runner returned the error code 12 (The profile does not
> exist) for the command 'profile,~/work/upstream/mesa/'", 'err_code':
> <RunnerErrorCode.CMD_PROFILE_INVALID: 12>}
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File
> "/home/testrunner/work/ezbench/python-modules/ezbench/smartezbench.py",
> line 426, in set_profile
> if e.args['err_code'] == RunnerErrorCode.ARG_PROFILE_INVALID:
> TypeError: tuple indices must be integers or slices, not str
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File "./ezbench", line 146, in <module>
> sbench.set_profile(args.profile)
> File
> "/home/testrunner/work/ezbench/python-modules/ezbench/smartezbench.py",
> line 434, in set_profile
> del runner
> UnboundLocalError: local variable 'runner' referenced before assignment
> -------------------------------------------2504---
Wow, that was a lot of bugs in one trace. ARG_PROFILE_INVALID is a typo
for CMD_PROFILE_INVALID.
The second bug (local variable runner referenced before assignment) was
already fixed in my dev branch. I squashed the two changes and pushed it
to master.
>
> This should probably be fatal error:
> ----------------------------------------------
> Traceback (most recent call last):
> File "./ezbenchd.py", line 357, in <module>
> sbench.run()
> File "ezbench/python-modules/ezbench/smartezbench.py", line 806, in run
> runner.start_testing()
> File "ezbench/python-modules/ezbench/runner.py", line 476, in
> start_testing
> self.__send_command__("start_testing")
> File "ezbench/python-modules/ezbench/runner.py", line 399, in
> __send_command__
> "err_str":"Stream ended before we got '<--'"}))
> ezbench.runner.RunnerError: {'err_str': "Stream ended before we got
> '<--'", 'msg': 'Incomplete command:\n["WARNING: automatic sudo rights
> are missing for function \'xserver_setup_start\'", "WARNING: automatic
> sudo rights are missing for function
> \'cpu_reclocking_disable_start\'"]', 'err_code':
> <RunnerErrorCode.UNKNOWN: -1>}
>
> Exception ignored in: <bound method Runner.__del__ of
> <ezbench.runner.Runner object at 0x7fca98d8da58>>
> Traceback (most recent call last):
> File "ezbench/python-modules/ezbench/runner.py", line 356, in __del__
> self.done()
> File "ezbench/python-modules/ezbench/runner.py", line 418, in done
> self.__send_command__("done")
> File "ezbench/python-modules/ezbench/runner.py", line 374, in
> __send_command__
> self.runner.stdin.flush()
> ----------------------------------------------
>
> It's also pretty nasty that the script requires sudo rights for
> everything. Things that are done with sudo should be separate, so that
> just them need to be granted sudo rights.
Yes, it is super nasty, but it cannot be that easily. What we really
need is a root brocker. I started writing it but the work has stalled as
IGT testing became more important. I will get back to it ASAP.
>
>
> And at end of ezbenchd.py build run there were more exceptions:
> ----------------------------------------------
> 2017-04-27 18:34:32: (II) Ezbench running m2504ode set to 'ERROR'
> Traceback (most recent call last):
> File "./ezbenchd.py", line 357, in <module>
> sbench.run()
> File "ezbench/python-modules/ezbench/smartezbench.py", line 843, in run
> time, cmd_output = runner.run(e.commit, e.test, False)
> File "ezbench/python-modules/ezbench/runner.py", line 472, in run
> r = self.__send_command__("run,{},{},{}".format(commit, test,
> verbose))
> File "ezbench/python-modules/ezbench/runner.py", line 374, in
> __send_command__
> self.runner.stdin.flush()
> BrokenPipeError: [Errno 32] Broken pipe
>
> Exception ignored in: <bound method Runner.__del__ of
> <ezbench.runner.Runner object at 0x7f8baa57a668>>
> Traceback (most recent call last):
> File "ezbench/python-modules/ezbench/runner.py", line 356, in __del__
> self.done()
> File "ezbench/python-modules/ezbench/runner.py", line 418, in done
> self.__send_command__("done")
> File "ezbench/python-modules/ezbench/runner.py", line 374, in
> __send_command__
> self.runner.stdin.flush()
> BrokenPipeError: [Errno 32] Broken pipe
> ----------------------------------------------
I push an update to take care of these messages. But I do not understand
why runner.sh just exits. I tried to find any exit that may still be in
the code, but fell out short :s
>
>
> Build errors...
>
> ezBench should have a configuration option for where suitable version of
> libdrm is located, or it should build one itself.
The latter is the ultimate plan. I guess we don't need to wait for multi
component bisect to compile libdrm already.
In the mean time, I suggest putting in user_parameters.sh all the
necessary environment variables you want accessible during the building
process:
export LD_LIBRARY_PATH=babla
etc...
So sorry for the current state, we have been going through a lot of
changes recently!
Martin
More information about the Ezbench-dev
mailing list