You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by GitBox <gi...@apache.org> on 2021/10/11 03:00:04 UTC

[GitHub] [buildstream] AdrianVovk opened a new issue #1525: bst-1: Cannot upgrade my project to glibc 2.34 because of missing /dev/shm

AdrianVovk opened a new issue #1525:
URL: https://github.com/apache/buildstream/issues/1525


   I'm aware of #1418, but I'm opening this as a separate issue for a couple of reasons:
   1. To increase visibility for anyone who will inevitably run into this issue (i.e. the freedesktop-sdk team)
   2. That PR is stale; it hasn't been interacted with in over a year
   3. I don't know if the appropriate people would get a notification if I left a comment there due to the Gitlab->Github transition
   
   As of glibc 2.34, /dev/shm is required for sem_open and other shm-dependent functions. Previously, glibc would fall back to non-standard locations, but it no longer does so. From the [changelog](https://sourceware.org/pipermail/libc-alpha/2021-August/129718.html):
   > * On Linux, the shm_open, sem_open, and related functions now expect the
     file shared memory file system to be mounted at /dev/shm.  These functions
     no longer search among the system's mount points for a suitable
     replacement if /dev/shm is not available.
   
   So, in Buildstream's environment where /dev/shm doesn't exist, upgrading to glibc 2.34 is a breaking change. In my project, this manifests itself in total build failure: Python's `configure` checks that `sem_open` works, and finds that it doesn't (whereas before it did). From there, Python is built without the `multiprocessing.synchronize` library, and then build tools that depend on this library fail to run. One of these tools is Firefox's mach, so I can't build mozjs or anything that depends on it. You get the picture.
   
   My options, as a user of BuildStream, are to downgrade glibc to 2.33 and stay on an old C library until Buildstream fixes this, or upgrade to the unstable/WIP BuildStream 2. For now, I'm downgrading to glibc 2.33 and I'm hoping this issue will get resolved in BuildStream quickly (and put into a release) so I can continue to keep my system up-to-date and secure.
   
   I think BuildStream should create /dev/shm by default. As-is, BuildStream is not a correctly-configured build environment, and /dev/shm missing causes build failures. Yes, this is technically a backward-incompatible change. However, the status-quo is that shm-related functions all work. If Buildstream adds in /dev/shm before other projects start depending on glibc 2.34, shm-related functions will continue to work. If Buildstream doesn't add this, these functions will suddenly *stop* working
   
   Moreover, I don't think I've ever upgraded Buildstream without subsequently rebuilding the system. If you don't want to introduce a backwards-incompatible change nonetheless, I think there should be at least a project-wide switch to enable it. Or, give a configuration option to each of the default build plugins (meson, autotools, cmake, etc) and then each project could enable it under `elements` in project.conf.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@buildstream.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [buildstream] jjardon commented on issue #1525: bst-1: Cannot upgrade my project to glibc 2.34 because of missing /dev/shm

Posted by GitBox <gi...@apache.org>.
jjardon commented on issue #1525:
URL: https://github.com/apache/buildstream/issues/1525#issuecomment-956168975


   For reference, workaround used in fdsdk here: https://gitlab.com/freedesktop-sdk/freedesktop-sdk/-/merge_requests/6201/diffs#b0f533a1bf7661e44d50af1264f81ed2f526078e


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@buildstream.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [buildstream] AdrianVovk commented on issue #1525: bst-1: Cannot upgrade my project to glibc 2.34 because of missing /dev/shm

Posted by GitBox <gi...@apache.org>.
AdrianVovk commented on issue #1525:
URL: https://github.com/apache/buildstream/issues/1525#issuecomment-940196112


   After some discussion with the Freedesktop-sdk team, we may have a workaround. You could have an element that links /dev/shm to ../tmp, and then stage that element in the build environment as appropriate. So far, some testing seems to indicate that this works
   
   Closing for now


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@buildstream.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [buildstream] AdrianVovk closed issue #1525: bst-1: Cannot upgrade my project to glibc 2.34 because of missing /dev/shm

Posted by GitBox <gi...@apache.org>.
AdrianVovk closed issue #1525:
URL: https://github.com/apache/buildstream/issues/1525


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@buildstream.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [buildstream] gtristan commented on issue #1525: bst-1: Cannot upgrade my project to glibc 2.34 because of missing /dev/shm

Posted by GitBox <gi...@apache.org>.
gtristan commented on issue #1525:
URL: https://github.com/apache/buildstream/issues/1525#issuecomment-960589972


   Note that with `1.6.4` (when released) we will no longer need this workaround, after merging #1533 
   
   This should allow constructs to assign the new `create-dev-shm` configuration on build elements (and script element) from the `project.conf` using the regular way of assigning project-wide configurations from project.conf.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@buildstream.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org