Anonymous | Login | 2024-04-30 03:59 CEST |
Main | My View | View Issues |
Viewing Issue Advanced Details [ Jump to Notes ] | [ View Simple ] [ Issue History ] [ Print ] | ||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||
0005255 | [collectd_plugin_python] | major | always | 2015-10-22 00:01 | 2016-10-08 22:31 | ||
Reporter | omen | View Status | public | ||||
Assigned To | dam | ||||||
Priority | normal | Resolution | suspended | Platform | Solaris | ||
Status | closed | OS | OmniOS | ||||
Projection | none | OS Version | v11 r151014 | ||||
ETA | none | Product Build | |||||
Summary | 0005255: Unable to load Python plugin | ||||||
Description |
I am unable to use the python plugin in collectd. I get the following error: lt_dlopen ("/opt/csw/lib/collectd/python.so") failed: file not found. The most common cause for this problem is missing dependencies. Use ldd(1) to check the dependencies of the plugin / shared object. plugin_load: Load plugin "python" failed with status 1. The problem seems to be that collectd cannot load any of the 32 bit plugins (in /opt/csw/lib/collectd/) but the collectd_plugin_python package provides no 64 bit plugin in /opt/csw/lib/64/collectd . |
||||||
Steps To Reproduce |
Install the collectd and collectd_plugin_python plugins. Extract the contents of the attached collectd-conf.tar.gz to /etc/opt/csw . Try to run collectd: collectd -C /etc/opt/csw/collectd.conf -t It will die with the above error. |
||||||
Additional Information |
From a truss the error appears to be in the mmapobj call: 2843: stat("/opt/csw/lib/collectd/python.so", 0xFFFFFD7FFFDFE320) = 0 2843: resolvepath("/opt/csw/lib/collectd/python.so", "/opt/csw/lib/collectd/python.so", 1023) = 31 2843: open("/opt/csw/lib/collectd/python.so", O_RDONLY) = 4 2843: mmapobj(4, MMOBJ_INTERPRET, 0xFFFFFD7FFF140DF8, 0xFFFFFD7FFFDFDE7C, 0x00000000) Err#48 ENOTSUP 2843: mmap(0x00000000, 4096, PROT_READ, MAP_PRIVATE, 4, 0) = 0xFFFFFD7FFF130000 2843: munmap(0xFFFFFD7FFF130000, 4096) = 0 2843: close(4) = 0 2843: open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES/SUNW_OST_SGS.mo", O_RDONLY) Err#2 ENOENT 2843: fstat(2, 0xFFFFFD7FFFDFD340) = 0 lt_dlopen ("/opt/csw/lib/collectd/python.so") failed: file not found. The most common cause for this problem is missing dependencies. Use ldd(1) to check the dependencies of the plugin / shared object.2843: write(2, " l t _ d l o p e n ( "".., 201) = 201 The error suggests running ldd, which shows no issues: root@zaphod.lawr.ucdavis.edu:/etc/opt/csw# ldd "/opt/csw/lib/collectd/python.so" libpython2.7.so.1.0 => /opt/csw/lib/i386/libpython2.7.so.1.0 libgcc_s.so.1 => /opt/csw/lib/i386/libgcc_s.so.1 libc.so.1 => /lib/libc.so.1 libsocket.so.1 => /lib/libsocket.so.1 libnsl.so.1 => /lib/libnsl.so.1 librt.so.1 => /lib/librt.so.1 libdl.so.1 => /lib/libdl.so.1 libm.so.2 => /lib/libm.so.2 libmp.so.2 => /lib/libmp.so.2 libmd.so.1 => /lib/libmd.so.1 |
||||||
Tags | No tags attached. | ||||||
Attached Files |
collectd-conf.tar.gz [^] (519 bytes) 2015-10-22 00:01 collectd-conf-2.tar.gz [^] (750 bytes) 2015-10-23 01:44 |
||||||
|
Relationships | |||||||
|
Notes | |
(0011071) dam (administrator) 2015-10-22 13:21 |
Yes, this is true. You cannot use 32 bit modules for 64 bit binaries. Unfortunately we don't have 64 bit Python as the configuration is not supported by upstream and nobody had the time to fix it. You can run a separate 32 bit instance of CollectD with the plugin by calling it explicitly by editing the SMF script /var/opt/csw/svc/method/svc-cswcollectd or call /opt/csw/sbin/<sparcv8plus|pentium_pro>/collectdmon explicitly. It would be nice to have a way to explicitly enable 32 and 64 bit daemons separately in SMF but that is not finished yet. |
(0011072) omen (reporter) 2015-10-22 21:30 |
Awesome, that works. Thanks! Did I miss an FAQ or an install note somewhere? If not, it would be a nice thing to add. root@zap:~# /opt/csw/sbin/pentium_pro/collectd -C /etc/opt/csw/collectd.conf -t interfaces [verbose]: Configured with Verbose = True Looks like you can close this ticket. I appreciate the help. |
(0011073) omen (reporter) 2015-10-23 01:45 |
Err, now I'm getting core dumps by collectd: root@zap:~# /opt/csw/sbin/pentium_pro/collectd -C /etc/opt/csw/collectd.conf -f Initialization complete, entering read-loop. kstat chain has been updated Fatal Python error: PyEval_SaveThread: NULL tstate Abort (core dumped) You can recreate by using the new config I uploaded (collectd-conf-2.tar.gz) and run collectd as above. It crashes on the second loop (after 10 seconds). Looks like an upstream issue with collectd: https://github.com/collectd/collectd/issues/864 [^] . |
(0011074) dam (administrator) 2015-10-23 08:59 |
This is expected: as you run a 64 bit kernel you need a 64 bit application to access kstat. You need to run one CollectD instance in 32 bit for the embedded Python (where you can't access kstat) and a 64 bit CollectD instance where you can access kstat but not Python. I know it would be best to have a 64 bit Python, but it is just not done yet. |
(0011075) omen (reporter) 2015-10-23 18:09 |
Ah, I see. That makes it a little trickier. Thanks for letting me know, and you can probably close this ticket now. Thanks for all the help. |
(0011197) dam (administrator) 2016-10-08 22:31 |
Just FYI: the long-standing python 64 bug is 0003054 |
Copyright © 2000 - 2008 Mantis Group |