WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 229994
Exception in run-webkit-tests: Bad file descriptor
https://bugs.webkit.org/show_bug.cgi?id=229994
Summary
Exception in run-webkit-tests: Bad file descriptor
Aakash Jain
Reported
2021-09-07 04:16:41 PDT
Exception in run-webkit-tests: Bad file descriptor e.g.:
https://build.webkit.org/#/builders/45/builds/2047/steps/11/logs/stdio
OSError raised: [Errno 9] Bad file descriptor (from worker/2) Traceback (most recent call last): File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 92, in main run_details = run(port, options, args, stderr) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 494, in run run_details = manager.run(args) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 413, in run temp_initial_results, temp_retry_results, temp_enabled_pixel_tests_in_retry = self._run_test_subset(test_inputs, device_type=device_type) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 487, in _run_test_subset initial_results = self._run_tests(test_inputs, self._options.repeat_each, self._options.iterations, int(self._options.child_processes), retrying=False, device_type=device_type) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 566, in _run_tests return self._runner.run_tests(self._expectations[device_type], new_test_inputs, num_workers, retrying, device_type) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 179, in run_tests pool.wait() File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 423, in wait self.queue.receive()(self) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 133, in __call__ reraise(*self.exc_info) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/libraries/autoinstalled/python-3/six.py", line 702, in reraise raise value.with_traceback(tb) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 296, in main queue.send(_Result(value=task(None), id=task.id)) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py", line 56, in __call__ return self.function(*self.args, **self.kwargs) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 76, in run_shard return Worker.instance.run_tests(shard) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 318, in run_tests Worker.instance.run_test(input, shard.name) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 358, in run_test self._clean_up_after_test(test_input, result) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 411, in _clean_up_after_test self._kill_driver() File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 398, in _kill_driver driver.stop() File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/port/driver.py", line 843, in stop self._driver.stop() File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/port/driver.py", line 515, in stop self._server_process.stop(self._port.driver_stop_timeout()) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/port/simulator_process.py", line 140, in stop return self._wait_for_stop(timeout_secs) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/port/server_process.py", line 428, in _wait_for_stop self._wait_for_data_and_update_buffers_using_select(now, stopping=True) File "/Volumes/Data/worker/ipados-simulator-14-release-tests-wk2/build/Tools/Scripts/webkitpy/port/server_process.py", line 286, in _wait_for_data_and_update_buffers_using_select read_fds, _, _ = select.select(select_fds, [], select_fds, max(deadline - time.time(), 0)) OSError: [Errno 9] Bad file descriptor (from worker/2)
Attachments
Patch
(2.42 KB, patch)
2021-09-07 08:16 PDT
,
Jonathan Bedard
no flags
Details
Formatted Diff
Diff
Patch
(2.43 KB, patch)
2021-09-07 08:17 PDT
,
Jonathan Bedard
no flags
Details
Formatted Diff
Diff
Patch
(2.71 KB, patch)
2021-09-07 08:33 PDT
,
Jonathan Bedard
no flags
Details
Formatted Diff
Diff
Patch
(2.25 KB, patch)
2021-09-08 14:19 PDT
,
Jonathan Bedard
no flags
Details
Formatted Diff
Diff
Patch for landing
(2.32 KB, patch)
2021-09-08 16:52 PDT
,
Jonathan Bedard
no flags
Details
Formatted Diff
Diff
Patch
(1.41 KB, patch)
2021-09-09 10:22 PDT
,
Jonathan Bedard
no flags
Details
Formatted Diff
Diff
Patch for landing
(1.43 KB, patch)
2021-09-10 07:32 PDT
,
Jonathan Bedard
no flags
Details
Formatted Diff
Diff
Patch
(4.57 KB, patch)
2021-09-16 10:37 PDT
,
Jonathan Bedard
no flags
Details
Formatted Diff
Diff
Patch
(9.04 KB, patch)
2021-09-24 20:33 PDT
,
Jonathan Bedard
no flags
Details
Formatted Diff
Diff
Show Obsolete
(8)
View All
Add attachment
proposed patch, testcase, etc.
Aakash Jain
Comment 1
2021-09-07 04:17:02 PDT
Seems to be happening frequently on
https://build.webkit.org/#/builders/45
queue
https://build.webkit.org/#/builders/45/builds/1916
https://build.webkit.org/#/builders/45/builds/2048
https://build.webkit.org/#/builders/45/builds/2040
https://build.webkit.org/#/builders/45/builds/2050
Aakash Jain
Comment 2
2021-09-07 04:20:51 PDT
Similar issue on:
https://build.webkit.org/#/builders/Apple-iOS-14-Simulator-Debug-WK2-Tests
https://build.webkit.org/#/builders/Apple-iPadOS-14-Simulator-Debug-WK2-Tests
Aakash Jain
Comment 3
2021-09-07 05:29:55 PDT
Similar issue on EWS in
https://ews-build.webkit.org/#/builders/51/builds/20712/steps/15/logs/stdio
Jonathan Bedard
Comment 4
2021-09-07 08:16:03 PDT
Created
attachment 437506
[details]
Patch
Jonathan Bedard
Comment 5
2021-09-07 08:17:20 PDT
Created
attachment 437507
[details]
Patch
Aakash Jain
Comment 6
2021-09-07 08:20:18 PDT
Comment on
attachment 437506
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=437506&action=review
> Tools/Scripts/webkitpy/port/server_process.py:287 > + except OSError:
we should definitely log something here (maybe with some more data which might help us debug the root-cause). Ignoring the issue completely doesn't sounds good.
> Tools/Scripts/webkitpy/port/server_process.py:317 > + except (IOError, OSError):
is this needed or just proactive?
Jonathan Bedard
Comment 7
2021-09-07 08:22:43 PDT
(In reply to Aakash Jain from
comment #6
)
> Comment on
attachment 437506
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=437506&action=review
> > > Tools/Scripts/webkitpy/port/server_process.py:287 > > + except OSError: > > we should definitely log something here (maybe with some more data which > might help us debug the root-cause). Ignoring the issue completely doesn't > sounds good.
I actually think ignoring is the right move because of the comment right bellow: # We can ignore EINVAL since it's likely the process just crashed and we'll # figure that out the next time through the loop in _read(). I'm pretty sure that's what's happening here.
> > > Tools/Scripts/webkitpy/port/server_process.py:317 > > + except (IOError, OSError): > > is this needed or just proactive?
Just proactive.
Jonathan Bedard
Comment 8
2021-09-07 08:33:51 PDT
Created
attachment 437511
[details]
Patch
Aakash Jain
Comment 9
2021-09-07 08:36:50 PDT
Comment on
attachment 437511
[details]
Patch rs=me
EWS
Comment 10
2021-09-07 09:37:40 PDT
Committed
r282091
(
241391@main
): <
https://commits.webkit.org/241391@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 437511
[details]
.
Radar WebKit Bug Importer
Comment 11
2021-09-07 09:38:32 PDT
<
rdar://problem/82826083
>
Jonathan Bedard
Comment 12
2021-09-08 14:19:15 PDT
Reopening to attach new patch.
Jonathan Bedard
Comment 13
2021-09-08 14:19:17 PDT
Created
attachment 437664
[details]
Patch
Jonathan Bedard
Comment 14
2021-09-08 16:27:20 PDT
(In reply to Jonathan Bedard from
comment #13
)
> Created
attachment 437664
[details]
> Patch
An effort to address
https://build.webkit.org/#/builders/45/builds/2070
Aakash Jain
Comment 15
2021-09-08 16:42:12 PDT
Comment on
attachment 437664
[details]
Patch I don't feel comfortable with hiding issue while launching the simulator itself. Let's try it out, but let's not make it a permanent fix.
Jonathan Bedard
Comment 16
2021-09-08 16:52:03 PDT
Created
attachment 437683
[details]
Patch for landing
Jonathan Bedard
Comment 17
2021-09-08 16:54:23 PDT
(In reply to Aakash Jain from
comment #15
)
> Comment on
attachment 437664
[details]
> Patch > > I don't feel comfortable with hiding issue while launching the simulator > itself. Let's try it out, but let's not make it a permanent fix.
We're not exactly hiding the issue, or rather, we're noting hiding the issue any more than we already hide similar issues. Basically, if we fail to launch an app for too much time, we will raise an exception. I'm assuming that our file descriptor errors are essentially the same as a failed-to-launch-app error.
EWS
Comment 18
2021-09-08 17:20:26 PDT
Committed
r282185
(
241474@main
): <
https://commits.webkit.org/241474@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 437683
[details]
.
Jonathan Bedard
Comment 19
2021-09-09 10:22:11 PDT
Reopening to attach new patch.
Jonathan Bedard
Comment 20
2021-09-09 10:22:12 PDT
Created
attachment 437757
[details]
Patch
Jonathan Bedard
Comment 21
2021-09-09 10:35:01 PDT
(In reply to Jonathan Bedard from
comment #20
)
> Created
attachment 437757
[details]
> Patch
An effort to address
https://build.webkit.org/#/builders/45/builds/2083
Ryan Haddad
Comment 22
2021-09-09 14:24:38 PDT
Comment on
attachment 437757
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=437757&action=review
> Tools/Scripts/webkitpy/common/system/filesystem.py:296 > + pass
Looking beyond the issue seen with simulators, can this unexpectedly bite us in other ways?
Jonathan Bedard
Comment 23
2021-09-09 16:13:45 PDT
(In reply to Ryan Haddad from
comment #22
)
> Comment on
attachment 437757
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=437757&action=review
> > > Tools/Scripts/webkitpy/common/system/filesystem.py:296 > > + pass > > Looking beyond the issue seen with simulators, can this unexpectedly bite us > in other ways?
I don't think we ever expect rmtree with ignore_errors=True to ever raise an exception, the fact that it does is probably a Python bug, but I'm not sure we can give a good enough reproduction for that.
Jonathan Bedard
Comment 24
2021-09-10 07:32:16 PDT
Created
attachment 437868
[details]
Patch for landing
EWS
Comment 25
2021-09-10 08:07:58 PDT
Committed
r282268
(
241546@main
): <
https://commits.webkit.org/241546@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 437868
[details]
.
Jonathan Bedard
Comment 26
2021-09-16 10:37:45 PDT
Reopening to attach new patch.
Jonathan Bedard
Comment 27
2021-09-16 10:37:47 PDT
Created
attachment 438367
[details]
Patch
Jonathan Bedard
Comment 28
2021-09-16 10:38:37 PDT
(In reply to Jonathan Bedard from
comment #27
)
> Created
attachment 438367
[details]
> Patch
Targeting issues like this:
https://build.webkit.org/#/builders/45/builds/2142
EWS
Comment 29
2021-09-16 18:16:12 PDT
Committed
r282625
(
241782@main
): <
https://commits.webkit.org/241782@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 438367
[details]
.
Jonathan Bedard
Comment 30
2021-09-24 20:33:56 PDT
Reopening to attach new patch.
Jonathan Bedard
Comment 31
2021-09-24 20:33:59 PDT
Created
attachment 439232
[details]
Patch
Jonathan Bedard
Comment 32
2021-09-27 10:00:15 PDT
Comment on
attachment 439232
[details]
Patch Reverting everything I landed to attempt to work around this problem, this is a regression due to Python 3. While we try and figure out the root cause, I'm going to revert run-webkit-tests back to Python 2.
EWS
Comment 33
2021-09-27 10:18:20 PDT
Committed
r283126
(
242184@main
): <
https://commits.webkit.org/242184@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 439232
[details]
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug