Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 529 of 808  Not logged in ELOG logo
ID Date Icon Author Author Email Category OSdown ELOG Version Subject
  67714   Wed Nov 12 03:48:29 2014 Reply Konstantin Olchanskiolchansk@triumf.caBug reportLinux2.9.2-a738Re: Defunct daemons
> Also see this in ALPHA at CERN.
> The elogd we use is this: https://bitbucket.org/ritt/elog/commits/44800a769b99599db7620779e2142b1161c694fc?at=master

Okey, found it. waitpid() in my_shell() is not protected against the periodic alarm signal. (UNIX signals are evil).

In the following log file, notice the entries that have "wait_status" of "-1". Those would have generated zombies ("defunct" processes).

Nov 12 03:43:05 alphacpc05 elogd[4809]: WAITPID pid 4873, wait_status 4873, errno 2 (No such file or directory), status 0, command "convert  
'/home/alpha/online/elog/logbooks/test/141112_034304_xvthr04.pdf[0-7]' -thumbnail '600' '/home/alpha/online/elog/logbooks/test/141112_034304_xvthr04-%d.png'"
Nov 12 03:43:05 alphacpc05 elogd[4809]: WAITPID pid 4880, wait_status 4880, errno 2 (No such file or directory), status 0, command "identify -format '%wx%h' 
'/home/alpha/online/elog/logbooks/test/141112_034304_xvthr04.pdf[0]'"
Nov 12 03:43:19 alphacpc05 elogd[4809]: WAITPID pid 4890, wait_status 4890, errno 2 (No such file or directory), status 0, command "identify -format '%wx%h' 
'/home/alpha/online/elog/logbooks/test/141112_034304_xvthr04.pdf[0]'"
Nov 12 03:43:19 alphacpc05 elogd[4809]: WAITPID pid 4896, wait_status -1, errno 4 (Interrupted system call), status 0, command "convert  
'/home/alpha/online/elog/logbooks/test/141112_034318_xvthr05.pdf[0-7]' -thumbnail '600' '/home/alpha/online/elog/logbooks/test/141112_034318_xvthr05-%d.png'"
Nov 12 03:43:19 alphacpc05 elogd[4809]: WAITPID pid 4896, wait_status 4896, errno 4 (Interrupted system call), status 0, command "convert  
'/home/alpha/online/elog/logbooks/test/141112_034318_xvthr05.pdf[0-7]' -thumbnail '600' '/home/alpha/online/elog/logbooks/test/141112_034318_xvthr05-%d.png'"
Nov 12 03:43:20 alphacpc05 elogd[4809]: WAITPID pid 4904, wait_status 4904, errno 4 (Interrupted system call), status 0, command "identify -format '%wx%h' 
'/home/alpha/online/elog/logbooks/test/141112_034318_xvthr05.pdf[0]'"
Nov 12 03:43:48 alphacpc05 elogd[4809]: WAITPID pid 4922, wait_status 4922, errno 2 (No such file or directory), status 0, command "identify -format '%wx%h' 
'/home/alpha/online/elog/logbooks/test/141112_034304_xvthr04.pdf[0]'"
Nov 12 03:43:49 alphacpc05 elogd[4809]: WAITPID pid 4929, wait_status -1, errno 4 (Interrupted system call), status 1302603136, command "identify -format '%wx%h' 
'/home/alpha/online/elog/logbooks/test/141112_034318_xvthr05.pdf[0]'"
Nov 12 03:43:49 alphacpc05 elogd[4809]: WAITPID pid 4929, wait_status 4929, errno 4 (Interrupted system call), status 0, command "identify -format '%wx%h' 
'/home/alpha/online/elog/logbooks/test/141112_034318_xvthr05.pdf[0]'"
Nov 12 03:43:50 alphacpc05 elogd[4809]: WAITPID pid 4935, wait_status 4935, errno 2 (No such file or directory), status 0, command "convert  
'/home/alpha/online/elog/logbooks/test/141112_034348_xvthr06.pdf[0-7]' -thumbnail '600' '/home/alpha/online/elog/logbooks/test/141112_034348_xvthr06-%d.png'"
Nov 12 03:43:50 alphacpc05 elogd[4809]: WAITPID pid 4943, wait_status 4943, errno 2 (No such file or directory), status 0, command "identify -format '%wx%h' 
'/home/alpha/online/elog/logbooks/test/141112_034348_xvthr06.pdf[0]'"

The following code is verified to not generate zombies, please apply it to the master branch of elog:

alphadaq.cern.ch:~/packages/elog> git diff
diff --git a/src/elogd.c b/src/elogd.c
index 277ba30..2d9a848 100755
--- a/src/elogd.c
+++ b/src/elogd.c
@@ -892,14 +892,25 @@ int my_shell(char *cmd, char *result, int size)
 
 #ifdef OS_UNIX
    pid_t child_pid;
-   int fh, status, i;
+   int fh, status, i, wait_status;
    char str[1024];
 
    if ((child_pid = fork()) < 0)
       return 0;
    else if (child_pid > 0) {
       /* parent process waits for child */
-      waitpid(child_pid, &status, 0);
+
+      while (1) {
+         wait_status = waitpid(child_pid, &status, 0);
+
+         sprintf(str, "WAITPID pid %d, wait_status %d, errno %d (%s), status %d, command \"%s\"", child_pid, wait_status, errno, strerror(errno), status, cmd);
+         write_logfile(NULL, str);
+         eprintf("%s", str);
+
+         if (wait_status == -1 && errno == EINTR)
+            continue;
+         break;
+      }
 
       /* read back result */
       memset(result, 0, size);
diff --git a/src/git-revision.h b/src/git-revision.h

K.O.
  67722   Mon Nov 24 13:24:27 2014 Reply Stefan Rittstefan.ritt@psi.chBug reportLinux2.9.2-a738Re: Defunct daemons
> Okey, found it. waitpid() in my_shell() is not protected against the periodic alarm signal. (UNIX signals are evil).

Acknowledged. Thanks for the fix. I added it to the development branch.

/Stefan
  67731   Tue Dec 16 01:15:40 2014 Question Eric Quinteroericq@caltech.eduBug reportLinux2.8.1Strange Behavior in "Find" Function

Hi all,

We've been happily using ELOG for years, but ran into an odd problem when replacing the old Solaris server that ran the ELOG with a newer box running Ubuntu. 

Basically, when I try to search the log, the URL seems to be malformed. I.e. the form produces the query string:

?mode=summvry&reverse=0&reverse=1&npp=35&m&y&Authorthor=ericq

Instead of a functional one like:

?mode=summary&reverse=1&npp=35&Author=ericq

We're running v2.8.1, since we like using the global write password mode; our log is viewable here: http://nodus.ligo.caltech.edu:8080 Any ideas what could've gone wrong? Installation was pretty straightforward, the code compiled happily on the ubuntu machine. 

Incidentally, I notice this logbook is running V3, using CKeditor. Any hints when these might be available for public use?

Thanks!

  67732   Wed Dec 17 14:40:19 2014 Reply Stefan Rittstefan.ritt@psi.chBug reportLinux2.8.1Re: Strange Behavior in "Find" Function
Eric Quintero wrote:

Hi all,

We've been happily using ELOG for years, but ran into an odd problem when replacing the old Solaris server that ran the ELOG with a newer box running Ubuntu. 

Basically, when I try to search the log, the URL seems to be malformed. I.e. the form produces the query string:

?mode=summvry&reverse=0&reverse=1&npp=35&m&y&Authorthor=ericq

Instead of a functional one like:

?mode=summary&reverse=1&npp=35&Author=ericq

We're running v2.8.1, since we like using the global write password mode; our log is viewable here: http://nodus.ligo.caltech.edu:8080 Any ideas what could've gone wrong? Installation was pretty straightforward, the code compiled happily on the ubuntu machine. 

Incidentally, I notice this logbook is running V3, using CKeditor. Any hints when these might be available for public use?

Thanks!

Old versions are not supported any more. I only can fix bugs in the current version. Probably the bug you report is already gone (just give it a try). If you need the global write password mode, you can enable guest read access to your logbook and define a single use with the write password, that's then almost equivalent.

/Stefan

 

 

  67742   Fri Jan 9 17:30:31 2015 Question Iolanda Mateamatea@ipno.in2p3.frQuestionLinux2.9.2-2455using a predefined format with predefined informations that an user should fill at each run of data

Hello!

I was wondering if it is possible (and how) to define a template (something equivalent to an excel table with some required informations to be filled) that opens each time one wants to make a new entry of a given type, e.g., I want this template to open only when the informations concern data taking.

I hope I am sufficiently clear ...

Thank you,

I.M.

  67745   Mon Jan 12 11:24:00 2015 Reply Stefan Rittstefan.ritt@psi.chQuestionLinux2.9.2-2455Re: using a predefined format with predefined informations that an user should fill at each run of data

In ELOG you can define "attributes", so take one attribute for each informaiton you need. The flag these attributes as required via "Required attributes = ...". If you only want this attributes for certain occations (like data taking in your case), you can either do a separato logbook for data taking, or use "conditional attributes" to make these attributes only show up for data taking.

/Stefan 

Iolanda Matea wrote:

Hello!

I was wondering if it is possible (and how) to define a template (something equivalent to an excel table with some required informations to be filled) that opens each time one wants to make a new entry of a given type, e.g., I want this template to open only when the informations concern data taking.

I hope I am sufficiently clear ...

Thank you,

I.M.

 

  67749   Tue Jan 13 04:11:33 2015 Question Banatajogjacard@yahoo.comQuestionLinux3.0.0notification error services in CentOS 6.5

hello, I just upgrade from 2.9 into 3.0.0 in CentOS 6.5

but after upgrade, I can't check elogd services via command line

service elogd status,

always result in missing argument, while it works with httpd or mysqld services and old elogd version.

I try to uninstall and install rom scratch and same result,

Okay I give you screenshoot of that,

you may notice, on check service status and stopping services, error resulted

Attachment 1: elogerror.png
elogerror.png
  67750   Tue Jan 13 10:07:02 2015 Reply Stefan Rittstefan.ritt@psi.chQuestionLinux3.0.0Re: notification error services in CentOS 6.5

The init script supplied with elog was originally written for Redhat. It seems like CentOS has slightly changed the init daemon management, but I'm not an expert on that, nor do I have CentOS installed. If somebody comes with a fixed elogd.init for CentOS, I'm happy to include that in the distribution.

/Stefan

Banata wrote:

hello, I just upgrade from 2.9 into 3.0.0 in CentOS 6.5

but after upgrade, I can't check elogd services via command line

service elogd status,

always result in missing argument, while it works with httpd or mysqld services and old elogd version.

I try to uninstall and install rom scratch and same result,

Okay I give you screenshoot of that,

you may notice, on check service status and stopping services, error resulted

 

ELOG V3.1.5-3fb85fa6