Summary: | PA incorrectly reports modules with unresolved symbols as missing | ||
---|---|---|---|
Product: | PulseAudio | Reporter: | Vadim Troshchinskiy <vtroshchinskiy> |
Component: | daemon | Assignee: | pulseaudio-bugs |
Status: | RESOLVED FIXED | QA Contact: | pulseaudio-bugs |
Severity: | normal | ||
Priority: | medium | CC: | lennart |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | Patch to call dlerror() in bind_now_open() for better reporting of module loading problems |
Thanks for the patch! (In reply to comment #0) > This is because bind_now_open() in src/daemon/ltdl-bind-now.c assumes any > problem with dlopen is due to a missing file. There's no such assumption. bind_now_open() sets the error to LT_ERROR_CANNOT_OPEN, which should map to error message "can't open the module". Apparently libltdl resets the error to LT_ERROR_FILE_NOT_FOUND. Would you be willing to investigate why that happens? It may be a bug in libltdl or in the way that pulseaudio uses it. Judging from the lack of response, I guess that you're not willing to do deeper investigation on this bug. I sent to the mailing list a patch that contains your change and also removes the message returned by lt_dlerror() in module.c: http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/16126 |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Created attachment 75901 [details] Patch to call dlerror() in bind_now_open() for better reporting of module loading problems If a module exists, but some of the symbols in it can't be resolved, the following happens: E: [] module.c: Failed to open module "module-coreaudio-detect": file not found Even though the file is clearly present in the modules directory. This is very confusing. This is because bind_now_open() in src/daemon/ltdl-bind-now.c assumes any problem with dlopen is due to a missing file. The attached patch makes it call dlerror() to report something more useful.