You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Clay (Created) (JIRA)" <ji...@apache.org> on 2012/02/21 21:50:49 UTC

[jira] [Created] (DAEMON-242) jsvc cannot find libcap.so on debian-based distributions

jsvc cannot find libcap.so on debian-based distributions
--------------------------------------------------------

                 Key: DAEMON-242
                 URL: https://issues.apache.org/jira/browse/DAEMON-242
             Project: Commons Daemon
          Issue Type: Bug
          Components: Jsvc
    Affects Versions: 1.0.9
         Environment: Debian 6.0.2
Ubuntu 11.04
            Reporter: Phil Clay


Debian-based distributions do not symlink the "main" shared object to the major version.

For example:

On RHEL4u4:
$ ls -l /lib/libcap.so*
lrwxrwxrwx  1 root root    11 Jun 13  2007 /lib/libcap.so -> libcap.so.1
lrwxrwxrwx  1 root root    14 Jun 12  2007 /lib/libcap.so.1 -> libcap.so.1.10
-rwxr-xr-x  1 root root 11784 Oct  7  2006 /lib/libcap.so.1.10

Notice libcap.so -> libcap.so.1


On Debian 6.02:
$ ls -l /lib/libcap.so*
lrwxrwxrwx 1 root root    14 Jan 25 10:19 /lib/libcap.so.2 -> libcap.so.2.19
-rw-r--r-- 1 root root 16640 Aug 16  2010 /lib/libcap.so.2.19


On Ubuntu 11.04:
$ ls -l /lib/libcap.so*
lrwxrwxrwx 1 root root    14 2011-07-16 09:52 /lib/libcap.so.2 -> libcap.so.2.20
-rw-r--r-- 1 root root 13816 2011-02-15 14:35 /lib/libcap.so.2.20

Notice there is no libcap.so -> libcap.so.2

Therefore, when jsvc attempts to load libcap.so, it fails...

I see this when running jsvc -debug ...

Attemtping to load library /lib/libcap.so
Attemtping to load library /usr/lib/libcap.so
failed loading capabilities library -- /usr/lib/libcap.so: cannot open shared object file: No such file or directory.
set_caps(CAPS) failed for user 'oncommand'
Service exit with a return value of 4


If I create the libcap.so -> libcap.so.2 symlink, it works.

I'm guessing the fix for this would be to load libcap.so, libcap.so.2, libcap.so.1 in progression to see if any work.

(Note that I have performed the workaround I mentioned in https://issues.apache.org/jira/browse/DAEMON-241 to get this far.)


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (DAEMON-242) jsvc cannot find libcap.so on debian-based distributions

Posted by "Mladen Turk (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DAEMON-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13214407#comment-13214407 ] 

Mladen Turk commented on DAEMON-242:
------------------------------------

Right, I was afraid that this feature would be actually useless in many cases.
The amount of possibilities is endless so it seems that a loop will be needed.


                
> jsvc cannot find libcap.so on debian-based distributions
> --------------------------------------------------------
>
>                 Key: DAEMON-242
>                 URL: https://issues.apache.org/jira/browse/DAEMON-242
>             Project: Commons Daemon
>          Issue Type: Bug
>          Components: Jsvc
>    Affects Versions: 1.0.9
>         Environment: Debian 6.0.2
> Ubuntu 11.04
>            Reporter: Phil Clay
>
> Debian-based distributions do not symlink the "main" shared object to the major version.
> For example:
> On RHEL4u4:
> $ ls -l /lib/libcap.so*
> lrwxrwxrwx  1 root root    11 Jun 13  2007 /lib/libcap.so -> libcap.so.1
> lrwxrwxrwx  1 root root    14 Jun 12  2007 /lib/libcap.so.1 -> libcap.so.1.10
> -rwxr-xr-x  1 root root 11784 Oct  7  2006 /lib/libcap.so.1.10
> Notice libcap.so -> libcap.so.1
> On Debian 6.02:
> $ ls -l /lib/libcap.so*
> lrwxrwxrwx 1 root root    14 Jan 25 10:19 /lib/libcap.so.2 -> libcap.so.2.19
> -rw-r--r-- 1 root root 16640 Aug 16  2010 /lib/libcap.so.2.19
> On Ubuntu 11.04:
> $ ls -l /lib/libcap.so*
> lrwxrwxrwx 1 root root    14 2011-07-16 09:52 /lib/libcap.so.2 -> libcap.so.2.20
> -rw-r--r-- 1 root root 13816 2011-02-15 14:35 /lib/libcap.so.2.20
> Notice there is no libcap.so -> libcap.so.2
> Therefore, when jsvc attempts to load libcap.so, it fails...
> I see this when running jsvc -debug ...
> Attemtping to load library /lib/libcap.so
> Attemtping to load library /usr/lib/libcap.so
> failed loading capabilities library -- /usr/lib/libcap.so: cannot open shared object file: No such file or directory.
> set_caps(CAPS) failed for user 'oncommand'
> Service exit with a return value of 4
> If I create the libcap.so -> libcap.so.2 symlink, it works.
> I'm guessing the fix for this would be to load libcap.so, libcap.so.2, libcap.so.1 in progression to see if any work.
> (Note that I have performed the workaround I mentioned in https://issues.apache.org/jira/browse/DAEMON-241 to get this far.)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (DAEMON-242) jsvc cannot find libcap.so on debian-based distributions

Posted by "Mark Wood (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DAEMON-242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13505809#comment-13505809 ] 

Mark Wood commented on DAEMON-242:
----------------------------------

Of course Gentoo Linux does things differently.  /usr/lib/libcap.so is a linker script.  Dynamically loading it results in error because it's not a shared object library but a text file.

johncock lib # head /var/log/tomcat-7/fix.log 
failed loading capabilities library -- /usr/lib/libcap.so: invalid ELF header.
set_caps(CAPS) failed for user 'tomcat'
Service exit with a return value of 4

johncock lib # cat libcap.so
/* GNU ld script
   Since Gentoo has critical dynamic libraries in /lib, and the static versions
   in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
   run into linking problems.  This "fake" dynamic lib is a linker script that
   redirects the linker to the real lib.  And yes, this works in the cross-
   compiling scenario as the sysroot-ed linker will prepend the real path.

   See bug http://bugs.gentoo.org/4411 for more info.
 */
OUTPUT_FORMAT ( elf64-x86-64 )
GROUP ( /lib64/libcap.so.2 )

I had to move it and symlink /usr/lib/libcap.so -> /lib/libcap.so to get jsvc to proceed.
                
> jsvc cannot find libcap.so on debian-based distributions
> --------------------------------------------------------
>
>                 Key: DAEMON-242
>                 URL: https://issues.apache.org/jira/browse/DAEMON-242
>             Project: Commons Daemon
>          Issue Type: Bug
>          Components: Jsvc
>    Affects Versions: 1.0.9
>         Environment: Debian 6.0.2
> Ubuntu 11.04
>            Reporter: Phil Clay
>             Fix For: 1.0.10
>
>
> Debian-based distributions do not symlink the "main" shared object to the major version.
> For example:
> On RHEL4u4:
> $ ls -l /lib/libcap.so*
> lrwxrwxrwx  1 root root    11 Jun 13  2007 /lib/libcap.so -> libcap.so.1
> lrwxrwxrwx  1 root root    14 Jun 12  2007 /lib/libcap.so.1 -> libcap.so.1.10
> -rwxr-xr-x  1 root root 11784 Oct  7  2006 /lib/libcap.so.1.10
> Notice libcap.so -> libcap.so.1
> On Debian 6.02:
> $ ls -l /lib/libcap.so*
> lrwxrwxrwx 1 root root    14 Jan 25 10:19 /lib/libcap.so.2 -> libcap.so.2.19
> -rw-r--r-- 1 root root 16640 Aug 16  2010 /lib/libcap.so.2.19
> On Ubuntu 11.04:
> $ ls -l /lib/libcap.so*
> lrwxrwxrwx 1 root root    14 2011-07-16 09:52 /lib/libcap.so.2 -> libcap.so.2.20
> -rw-r--r-- 1 root root 13816 2011-02-15 14:35 /lib/libcap.so.2.20
> Notice there is no libcap.so -> libcap.so.2
> Therefore, when jsvc attempts to load libcap.so, it fails...
> I see this when running jsvc -debug ...
> Attemtping to load library /lib/libcap.so
> Attemtping to load library /usr/lib/libcap.so
> failed loading capabilities library -- /usr/lib/libcap.so: cannot open shared object file: No such file or directory.
> set_caps(CAPS) failed for user 'oncommand'
> Service exit with a return value of 4
> If I create the libcap.so -> libcap.so.2 symlink, it works.
> I'm guessing the fix for this would be to load libcap.so, libcap.so.2, libcap.so.1 in progression to see if any work.
> (Note that I have performed the workaround I mentioned in https://issues.apache.org/jira/browse/DAEMON-241 to get this far.)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Resolved] (DAEMON-242) jsvc cannot find libcap.so on debian-based distributions

Posted by "Mladen Turk (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DAEMON-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mladen Turk resolved DAEMON-242.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 1.0.10

Fixed in the svn. Will be part of 1.0.10
The fix tries to load libcap.so.2, libcap.so.1, libcap.so in that order. If libcap still cannot be found the legacy syscall is used and error message logged.
                
> jsvc cannot find libcap.so on debian-based distributions
> --------------------------------------------------------
>
>                 Key: DAEMON-242
>                 URL: https://issues.apache.org/jira/browse/DAEMON-242
>             Project: Commons Daemon
>          Issue Type: Bug
>          Components: Jsvc
>    Affects Versions: 1.0.9
>         Environment: Debian 6.0.2
> Ubuntu 11.04
>            Reporter: Phil Clay
>             Fix For: 1.0.10
>
>
> Debian-based distributions do not symlink the "main" shared object to the major version.
> For example:
> On RHEL4u4:
> $ ls -l /lib/libcap.so*
> lrwxrwxrwx  1 root root    11 Jun 13  2007 /lib/libcap.so -> libcap.so.1
> lrwxrwxrwx  1 root root    14 Jun 12  2007 /lib/libcap.so.1 -> libcap.so.1.10
> -rwxr-xr-x  1 root root 11784 Oct  7  2006 /lib/libcap.so.1.10
> Notice libcap.so -> libcap.so.1
> On Debian 6.02:
> $ ls -l /lib/libcap.so*
> lrwxrwxrwx 1 root root    14 Jan 25 10:19 /lib/libcap.so.2 -> libcap.so.2.19
> -rw-r--r-- 1 root root 16640 Aug 16  2010 /lib/libcap.so.2.19
> On Ubuntu 11.04:
> $ ls -l /lib/libcap.so*
> lrwxrwxrwx 1 root root    14 2011-07-16 09:52 /lib/libcap.so.2 -> libcap.so.2.20
> -rw-r--r-- 1 root root 13816 2011-02-15 14:35 /lib/libcap.so.2.20
> Notice there is no libcap.so -> libcap.so.2
> Therefore, when jsvc attempts to load libcap.so, it fails...
> I see this when running jsvc -debug ...
> Attemtping to load library /lib/libcap.so
> Attemtping to load library /usr/lib/libcap.so
> failed loading capabilities library -- /usr/lib/libcap.so: cannot open shared object file: No such file or directory.
> set_caps(CAPS) failed for user 'oncommand'
> Service exit with a return value of 4
> If I create the libcap.so -> libcap.so.2 symlink, it works.
> I'm guessing the fix for this would be to load libcap.so, libcap.so.2, libcap.so.1 in progression to see if any work.
> (Note that I have performed the workaround I mentioned in https://issues.apache.org/jira/browse/DAEMON-241 to get this far.)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira