[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
|
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. |