[ 
https://issues.apache.org/jira/browse/SOLR-590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hannes Schmidt updated SOLR-590:
--------------------------------

    Attachment: fixUser.patch

Attaching patch.

> Limitation in pgrep on Linux platform breaks script-utils fixUser 
> ------------------------------------------------------------------
>
>                 Key: SOLR-590
>                 URL: https://issues.apache.org/jira/browse/SOLR-590
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 1.2
>         Environment: Linux 2.6.18-53.1.14.el5 #1 SMP Wed Mar 5 11:37:38 EST 
> 2008 x86_64 x86_64 x86_64 GNU/Linux
> procps-3.2.7-8.1.el5
>            Reporter: Hannes Schmidt
>            Priority: Minor
>         Attachments: fixUser.patch
>
>
> The fixUser function in script-utils uses two methods to determine the 
> username of the parent process (oldwhoami). If the first method fails for 
> certain reasons it will fallback to the second method. For most people the 
> first method will succeed but I know that in my particular installation the 
> first method fails so I need the second method to succeed. Unfortunately, 
> that fallback method doesn't work because it uses pgrep to lookup the current 
> script's name and on my Linux 2.6.18 platform pgrep is limited to 15 
> characters. The names of many scripts in the SOLR distribution are longer 
> than that, causing pgrep to return nothing and the subsequent ps invocation 
> to fail with an error:
> ERROR: List of process IDs must follow -p.
> You can easily reproduce that behaviour with
> /app/solr/solr/bin/snappuller-enable < /dev/null
> The redirection of stdin from /dev/null causes fixUser to fallback to the 
> second method but there are other, more realistic scenarios in which the 
> fallback happens, like
> ssh [EMAIL PROTECTED] /app/solr/solr/bin/snappuller-enable
> The fix is to use the -f option which causes pgrep to compare the full path 
> of the executable. Interestingly, that method is not subject to the 15 
> character length limit. The limit is not actually enforced by jetty but 
> rather by the procfs file system of the linux kernel. If you look at 
> /proc/*/stat you will notice that the second column is limited to 15 
> characters.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to