| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Use glibc functions instead of syscall(): pidfd_open(), pidfd_getfd() and pidfd_send_signal() (glibc 2.36), gettid() and getdents64() (glibc 2.30), and getrandom() (glibc 2.25).
Use unsigned int for os.getrandom() flags and signal.pidfd_send_signal() flags.
I wrote this change to replace syscall() calls with glibc function calls here instead. Is it what you proposed? |
Sorry, something went wrong.
|
🤖 New build scheduled with the buildbot fleet by @vstinner for commit b6bbfd9 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F155518%2Fmerge If you want to schedule another build, you need to add the 🔨 test-with-buildbots label again. |
Sorry, something went wrong.
It looks good, thank you! |
Sorry, something went wrong.
The "test" step failed with a timeout, not good. I'm not sure if it's related to the change or not. |
Sorry, something went wrong.
|
!buildbot AMD64 Android |
Sorry, something went wrong.
|
🤖 New build scheduled with the buildbot fleet by @mhsmith for commit b6bbfd9 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F155518%2Fmerge The command will test the builders whose names match following regular expression: AMD64 Android The builders matched are:
|
Sorry, something went wrong.
|
The buildbot stopped working about 24 hours ago, so it's not related to this change. Testing manually, it appeared to work on the first run within each Gradle daemon, but if I interrupted it and tried again, it hung while starting the emulator. Removing the emulator snapshot and allowing it to be recreated seems to have fixed the issue. |
Sorry, something went wrong.
|
No, apparently not, and it looks like this previously happened for a few runs in a row on August 5, then again on August 6. In each case, it was triggered by a run that was cancelled for some reason, such as a master shutdown. Subsequent runs then stop at the line > Task :app:maxVersionDebugAndroidTest, and time out after 10 minutes without having started the emulator. The problem persists until there's a long enough gap between runs for the broken Gradle daemon to exit from inactivity. So this was probably caused by the Gradle update on August 1 (#155012). I'll shut the buildbot down until I have a chance to look into this. Notes to self:
We still have x86_64 being tested by GitHub Actions, and aarch64 by the other buildbot, so it doesn't need to block this PR. |
Sorry, something went wrong.
|
I didn't try any of the ideas above, because although I reproduced the problem manually several times, I wasn't able to do it reliably, so I'd have no way of knowing whether anything worked. None of the following things were good enough:
Instead, since the problem involves the Gradle daemon getting into a broken state, I disabled persistent daemons by adding this line to the worker startup script: export GRADLE_OPTS="-Dorg.gradle.daemon=false" This should make each run more independent, as it is on GitHub Actions. It only costs about 20 seconds per run. |
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM, thanks!
Sorry, something went wrong.
| (struct linux_dirent64 *)buffer, | ||
| sizeof(buffer))) > 0) { | ||
| struct linux_dirent64 *entry; | ||
| char buffer[sizeof(struct py_dirent64)]; |
There was a problem hiding this comment.
[post merge review] confirming that this is safe. glibc's struct dirent64 is as above and has 256 bytes of d_name space declared. I think the linux kernel itself uses a sizeless d_name[] to expect the caller to allocate extra. if that happened here we'd wind up with a tiny struct without necessarily room for a name and an error from the syscall, silently falling back to a slower or unsafe code path instead.
Sorry, something went wrong.
The same problem has now also occurred on the aarch64 buildbot, once on 09-13 and once on 09-15. So I've moved the workaround to the buildmaster config (python/buildmaster-config#796). Since it's now happened on both machines, that makes it much less likely to be caused by the version of Java or any SDK packages, and more likely to be caused by the version of Gradle or the AGP. |
Sorry, something went wrong.
|
Identical symptoms appeared again today on the aarch64 buildbot, after losing the connection to the master. However, it did not recover even after a 3 hour gap, and the daemon was disabled anyway. Removing the emulator snapshot fixed the issue. |
Sorry, something went wrong.
|
If you have more issues with Android, you may open a separated issue, since this issue is closed and not directly related to Android. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Use glibc functions instead of syscall(): pidfd_open(), pidfd_getfd() and pidfd_send_signal() (glibc 2.36), gettid() and getdents64() (glibc 2.30), and getrandom() (glibc 2.25).
Use unsigned int for os.getrandom() flags and signal.pidfd_send_signal() flags.