Investigate the struct layout of `MPSCQueue<T>::Message` on Windows
Categories
(Core :: Audio/Video: cubeb, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox79 | --- | fixed |
People
(Reporter: padenot, Assigned: padenot)
References
Details
Attachments
(2 files)
The layout is different and there seem to be a hole.
Assignee | ||
Comment 1•4 years ago
|
||
Same on android it seems. Probably differently sized types.
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 2•4 years ago
|
||
Assignee | ||
Comment 3•4 years ago
|
||
Green on try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=35a45361452378100241ca677d2e3dc19b16617f it was a mix of 32bits vs. 64bits and TimeStamp, that changes size on different platforms. The assert is now re-enabled unconditionally.
Comment 5•4 years ago
|
||
Backed out for build bustages.
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=307370363&repo=autoland&lineNumber=18196
Backout: https://hg.mozilla.org/integration/autoland/rev/04ed910d0a2fa35e25c9d88a66cdead6777eacd6
Comment 7•4 years ago
|
||
bugherder |
Comment 8•4 years ago
|
||
Reopening since this patch causes Linux build bustages on central:
https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&group_state=expanded&selectedTaskRun=XJ4xXVr4QZ2rdaUTbtJT3A.0&resultStatus=testfailed%2Cbusted%2Cexception&searchStr=linux&revision=1004d422aedb5994f9f2949fd4a4c67bc89e22c7
Backout: https://hg.mozilla.org/mozilla-central/rev/8fcf1cac56600d932240486ffe7a06d46a0c931c
Log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=307433529&repo=mozilla-central&lineNumber=32757
Assignee | ||
Updated•4 years ago
|
Comment 10•4 years ago
|
||
bugherder |
Comment 11•4 years ago
|
||
hey everyone, I get this beauty when compiling firefox-79.0_beta2 for armv7:
8:40.97 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-79.0_beta2/work/firefox-79.0/dom/media/MPSCQueue.h: In instantiation of 'class mozilla::MPSCQueue<mozilla::AsyncLogger::TracePayload>':
8:40.97 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-79.0_beta2/work/firefox-79.0/dom/media/AsyncLogger.h:251:27: required from here
8:40.97 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-79.0_beta2/work/firefox-79.0/dom/media/MPSCQueue.h:47:29: error: static assertion failed: MPSCQueue internal allocations must have a size that is a power of two
8:40.97 47 | static_assert(IsPowerOfTwo(sizeof(MPSCQueue<T>::Message)),
8:40.97 | ^
8:56.80 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-79.0_beta2/work/firefox-79.0/dom/media/MPSCQueue.h: In instantiation of 'class mozilla::MPSCQueue<mozilla::AsyncLogger::TracePayload>':
8:56.80 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-79.0_beta2/work/firefox-79.0/dom/media/AsyncLogger.h:251:27: required from here
8:56.80 /usr/armv7a-unknown-linux-gnueabihf/tmp/portage/www-client/firefox-79.0_beta2/work/firefox-79.0/dom/media/MPSCQueue.h:47:29: error: static assertion failed: MPSCQueue internal allocations must have a size that is a power of two
8:56.80 47 | static_assert(IsPowerOfTwo(sizeof(MPSCQueue<T>::Message)),
line 47 is guarded, it seems there's still a hole left for a failure:
#if !(defined(ANDROID) && defined(i386))
static_assert(IsPowerOfTwo(sizeof(MPSCQueue<T>::Message)),
"MPSCQueue internal allocations must have a size that is a "
"power of two ");
#endif
Comment 12•4 years ago
|
||
here's the full build log, I'm on linux and cross compiling from amd64 host to armv7 target
Assignee | ||
Comment 13•4 years ago
|
||
I posted a patch in bug 1649691 if you can try it ?
Description
•