Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 354 of 807  Not logged in ELOG logo
ID Date Icon Author Author Email Category OS ELOG Versiondown Subject
  67123   Tue Sep 13 13:38:19 2011 Idea Andreas Luedekeandreas.luedeke@psi.chBug fixLinux2.9.0-2414Re: Elog crashes with URL find npp=0
> [...] It appears that npp=0 crashes elogd [...]

Here's a patch: search for "npp" in src/elogd.c and add the following line:
  if (n_page<=0) n_page = 20;

Here's the diff output for version 2.9.0-2414
*** 20092,20096 ****
     if (isparam("npp"))
        n_page = atoi(getparam("npp"));
+    if (n_page<=0) n_page = 20;

     if (page_mid) {
  67138   Thu Oct 27 11:29:08 2011 Question Andreas Luedekeandreas.luedeke@psi.chBug reportLinux2.9.0-2414elogd crash for special query
A query to a logbook can crash the demon.

Query:
https://pc8059.psi.ch:444/SwissFEL+Injector/?jcmd=Find&m0a=10&d0a=27&y0a=2011&npp=1&reverse=0

gdb dump:
SSLServer listening on port 444 ...

Program received signal SIGSEGV, Segmentation fault.
show_elog_list (lbs=0xae72618, past_n=0, last_n=0, page_n=0, default_page=1, info=0x0) at src/elogd.c:20797
20797         message_id = msg_list[index].lbs->el_index[msg_list[index].index].message_id;
Attachment 1: elogd.cfg
[global]
SMTP host = mail.psi.ch
Language = german_UTF8
charset = UTF-8
SSL = 1
Port = 444
Authentication = Kerberos, File
Password file = passwd.txt

Admin user = luedeke
Allow password change = 0
Self register = 0
Allowed encoding = 5
Allow HTML = 1
Suppress execute default = 0
Tab cellpadding = 2
Logfile = elog.log

Date format = %a %d-%b-%Y 
Time format = %a %d-%b-%y %H:%M


[SwissFEL Injector]
Default encoding = 2
Comment = SwissFEL Injector Beam Development
Guest Menu commands = New, Find, List, Login, Help
Guest List Menu commands = New, Find, Login, Help
Restrict edit time = 48
Admin user = luedeke, robot
Login expiration = 8
Reverse sort = 1
Thumbnail size = 792>
Attributes      = When, Author, Entry, Status, System, Downtime, Beamtime, Coordinator, Shiftleader, Operators, Participants, Title
List display    = ID, When, Author, Entry, Status, System, Title
Thread display  = $entry time, $Author, $Entry, $Status, $System, "$Title"
Quick filter    = When, Entry, Status
Start page = ?rsort=When
Use Email Subject = ELOG $logbook: $Entry: $Title

# When
Type When = datetime
Preset When = $date
# Author
#Preset Author = $long_name
#Preset on reply Author = $long_name
Preset on first reply Titel = Re: $Titel
#Locked Attributes = Author
Preset Author = $shell(if [ $short_name = "Anonym" ] ;then echo $Author;else echo \"$long_name, $Author\";fi)
Preset on reply Author = $long_name
# Entry
Options Entry = Problem{1}, Measurement{2}, Shift-Summary{3}, Info{4}, Alarms{5}

# depending on Entry, but not specific to one attribute
{1,5} Show Attributes Edit = When, Author, Entry, Status, System, Title
{1,5} Show Attributes      = When, Author, Entry, Status, System, Title
{2,4} Show Attributes Edit = When, Author, Entry, System, Title
{2,4} Show Attributes      = When, Author, Entry, System, Title
{3}   Show Attributes Edit = When, Author, Entry, Coordinator, Shiftleader, Operators, Participants, Downtime, Beamtime, Title
{3} Required attributes = Coordinator, Shiftleader, Operators, Downtime, Beamtime, Title
{3} Preset Title = Shift on $date
{1,2,4,5} Preset Title = 
{1,5} Required attributes = When, Author, Entry, Status

# Status
{1} Options Status = open, work-in-progress, closed
{1} Preset Status = open
{5} Options Status = canceled, disabled, enabled
{5} Preset Status = disabled
# System
{1,4,5} Options System = Beamdynamics, Controls, Diagnostics, Mains

#{2} System  = free text for measurement software, incl. version
Show Attributes Edit = When, Author, Entry, Title
# Downtime (only for Shift-Summary{3})
Type Downtime = numeric
Comment Downtime = hours of shift not usable (waiting for repair, etc.)
Format Downtime = 0, attribname, attribvalue, 8, 3
# Beamtime (only for Shift-Summary{3})
Type Beamtime = numeric
Comment Beamtime = hours of shift useable for measurements
Format Beamtime = 1, attribname, attribvalue, 8, 3
# Text
{1,2,4,5} Preset Text = /usr/local/elog/logbooks/inc/clear.html
{3} Preset Text = /usr/local/elog/logbooks/inc/FIN-summary.html
  67059   Sat Apr 30 19:45:30 2011 Question soren poulsensoren.poulsen@cern.chBug reportLinux2.9.0-2413ELOG deamon stuck in find_thread_head()

ELOG seems to enter a loop when you do certain opeations on certain messages: I moved a message to a different logbook and the deamon just gets stuck.

If I restart the daemon, the message was in fact moved: I can move it back to its original destination without problems.

I started in GDB and break with ctrl-C when the process gets stuck, to be told :

Program received signal SIGINT, Interrupt.
0x000000000040a968 in find_thread_head ()

I then made a core dump.

I put the files here: http://cern.ch/poulsen2/elog-error-report-110430.zip (they are too big to upload).

I get into the same problem in other circumstances such as when opening some threads (maybe because they contain "Reply-to" references to non-existing messages, but I have problems reproducing this on the test installation.

I should maybe also submit the incriminating thread.

Soren

 

  67063   Tue May 3 17:35:57 2011 Reply Soren Poulsensoren.poulsen@cern.chBug reportLinux2.9.0-2413Re: ELOG deamon stuck in find_thread_head()

soren poulsen wrote:

ELOG seems to enter a loop when you do certain opeations on certain messages: I moved a message to a different logbook and the deamon just gets stuck.

If I restart the daemon, the message was in fact moved: I can move it back to its original destination without problems.

I started in GDB and break with ctrl-C when the process gets stuck, to be told :

Program received signal SIGINT, Interrupt.
0x000000000040a968 in find_thread_head ()

I then made a core dump.

I put the files here: http://cern.ch/poulsen2/elog-error-report-110430.zip (they are too big to upload).

I get into the same problem in other circumstances such as when opening some threads (maybe because they contain "Reply-to" references to non-existing messages, but I have problems reproducing this on the test installation.

I should maybe also submit the incriminating thread.

Soren

 

 1. It appears that some times find_thread_head is called with message references that do not exist. That is not good.

I put in a little check like this  before seeing if the message has an "in_reply_to" reference:

The line:

if (lbs->el_index[i].in_reply_to)

becomes:

if (i < *lbs->n_el_index && lbs->el_index[i].in_reply_to)
 

2. The trouble started when I deleted a message in the middle of a thread, which left the thread badly "connected" (references to a deleted message).

3. Also, when a thread is badly connected, it is a problem moving messages to a different logbook. ELOG complains that it cannot access the message (with the invalid reference). But ELOG should ignore it, since the message was deleted.

 

Soren

  67086   Wed Jul 6 12:06:01 2011 Angy Soren Poulsensoren.poulsen@cern.chBug reportLinux2.9.0-2413Re: ELOG deamon stuck in find_thread_head()

Soren Poulsen wrote:

soren poulsen wrote:

ELOG seems to enter a loop when you do certain opeations on certain messages: I moved a message to a different logbook and the deamon just gets stuck.

If I restart the daemon, the message was in fact moved: I can move it back to its original destination without problems.

I started in GDB and break with ctrl-C when the process gets stuck, to be told :

Program received signal SIGINT, Interrupt.
0x000000000040a968 in find_thread_head ()

I then made a core dump.

I put the files here: http://cern.ch/poulsen2/elog-error-report-110430.zip (they are too big to upload).

I get into the same problem in other circumstances such as when opening some threads (maybe because they contain "Reply-to" references to non-existing messages, but I have problems reproducing this on the test installation.

I should maybe also submit the incriminating thread.

Soren

 

 1. It appears that some times find_thread_head is called with message references that do not exist. That is not good.

I put in a little check like this  before seeing if the message has an "in_reply_to" reference:

The line:

if (lbs->el_index[i].in_reply_to)

becomes:

if (i < *lbs->n_el_index && lbs->el_index[i].in_reply_to)
 

2. The trouble started when I deleted a message in the middle of a thread, which left the thread badly "connected" (references to a deleted message).

3. Also, when a thread is badly connected, it is a problem moving messages to a different logbook. ELOG complains that it cannot access the message (with the invalid reference). But ELOG should ignore it, since the message was deleted.

 

Soren

 It would be nice to have this corrected. The problem occurs when you select (read) a message which refers to another message via "In-reply-to", and this message does not exist.

Soren

  67087   Wed Jul 6 12:36:33 2011 Reply David PilgramDavid.Pilgram@epost.org.ukBug reportLinux2.9.0-2413Re: ELOG deamon stuck in find_thread_head()

Soren Poulsen wrote:

Soren Poulsen wrote:

soren poulsen wrote:

ELOG seems to enter a loop when you do certain opeations on certain messages: I moved a message to a different logbook and the deamon just gets stuck.

If I restart the daemon, the message was in fact moved: I can move it back to its original destination without problems.

I started in GDB and break with ctrl-C when the process gets stuck, to be told :

Program received signal SIGINT, Interrupt.
0x000000000040a968 in find_thread_head ()

I then made a core dump.

I put the files here: http://cern.ch/poulsen2/elog-error-report-110430.zip (they are too big to upload).

I get into the same problem in other circumstances such as when opening some threads (maybe because they contain "Reply-to" references to non-existing messages, but I have problems reproducing this on the test installation.

I should maybe also submit the incriminating thread.

Soren

 

 1. It appears that some times find_thread_head is called with message references that do not exist. That is not good.

I put in a little check like this  before seeing if the message has an "in_reply_to" reference:

The line:

if (lbs->el_index[i].in_reply_to)

becomes:

if (i < *lbs->n_el_index && lbs->el_index[i].in_reply_to)
 

2. The trouble started when I deleted a message in the middle of a thread, which left the thread badly "connected" (references to a deleted message).

3. Also, when a thread is badly connected, it is a problem moving messages to a different logbook. ELOG complains that it cannot access the message (with the invalid reference). But ELOG should ignore it, since the message was deleted.

 

Soren

 It would be nice to have this corrected. The problem occurs when you select (read) a message which refers to another message via "In-reply-to", and this message does not exist.

Soren

Soren, you're not alone!  I've had similar problems, as did Sara Vanini (elog:67077).

 

In my case, it is because the "move" or "copy" function does not move all the messages in very long threads.   To be more precise, elog will crash in the attempt to move a long thread - say over 40 replies, I don't know for sure.  Sometimes it has already moved the entire thread before it crashes, sometimes not.  I'd not flagged it up as an issue because I could not be sure it was not a memory issue with the old (>12 years) linux box I was using earlier this year, but it still happens on this new (to me, only 3 years old) linux box.

 

Whether it is the number of entries, the total memory size of the thread or some combination, I don't know.

 

I've found that in the "move" case, it has not deleted all the messages from the donor thread, so that there is a semi-thread still hidden there.  Should one by chance select that semi-thread, (because it is found during a search) elog goes into infinate loop, which requires a reboot of this linux box to fix.   Certainly the pinning down the issue to the missing entry referenced by an <i>In reply to:</i> explains this part of the issue.  Of course, deletion of one entry within a thread, or other adjustments will do the same thing, just as you (Soren) point out above.

 

If it happens to me, I will go in to the yymmdda.log files and fix the problem, be it deleting the entries of the semi-thread, moving across missing entries from the donor to the acceptor logbooks, adjusting the <i>Reply:</i> and <i>In reply to:</i> lines, but that is quite a time consuming and error prone exercise.

  67088   Wed Jul 6 12:45:19 2011 Question David PilgramDavid.Pilgram@epost.org.ukQuestionAll2.9.0-2411Attachments in a different logbook to the entry logbook

Is it possible to have an attachment to an entry in a different directory to the working directory of the logbook being used?

By which I mean, if you have in logbook hidden the attachment files

../logbooks/hidden/110705_235520_whatthis-0.png
../logbooks/hidden/110705_235520_whatthis.pdf

that an entry in another logbook, public, can use the entries in hidden to show them (and do everything that you can do with an attachment)
without making another copy in public?

I see that if, working in public, you attach the .pdf file in hidden, the files get copied across as

../logbooks/public/110705_235520_whatthis-0.png
../logbooks/public/110705_235520_whatthis.pdf

that is, with the original (hidden) timestamp, and no second time stamp superimposed.  From which you can gather I've been playing around, manually editing a yymmdda.log file to try and get the result I want, even if for the moment it cannot be done via elog; but without success, although there were some bizarre interpretations by the elog program of the edited yymmdda.log file, depending upon what I tried.

For one entry, it is of course no big deal, copying the files into the public directory, but if you are dealing with multiple huge entries, it does seem wasteful of HD space

But my reason for this is that hidden has restricted access, whereas public has general access.  The attachments themselves are not restricted, but comments, history etc around them in the restricted access logbook should not become available to the general viewer.

  67104   Wed Aug 31 14:00:17 2011 Question David PilgramDavid.Pilgram@epost.org.ukQuestionAll2.9.0-2411Attachments (again)
OK, so no-one has ideas as per my question in elog:67088.

Looking at the issue from another angle.

If you attach a pdf file (for example), two files are added to the logbook:

../logbooks/hidden/110705_235520_whatthis-0.png
../logbooks/hidden/110705_235520_whatthis.pdf

Is there any way that you can select an attachent, but only the thumbnail (.png in this case) is stored (and
subsequently viewed)?  Options for ability to select an attachment, or how the thumbnail is manipulated/viewed
exist, but nothing about the storage or otherwise of the original document that I can find.

I've tried manually deleting the .pdf file (after going through the automatic routine to make an attachment),
and elog doesn't seem upset at the lack of the .pdf file at all.  The only time anything happens is if one
clicks on the image - and then you get a 'file not found' message from the browser - I could live with that.

In my case the original .pdf file is elsewhere, I've no need to have duplicates scatted in various logbooks, and
while ideally that would also be true of the thumbnail, it is fair enough for this to be stored in each logbook
where it is required.  This removes the issue of how to have an attachment in a different logbook (other than by
links, which would get rather tiresome to have to keep making).

Anyone any ideas?
ELOG V3.1.5-3fb85fa6