Signaled to death by 11

Jeremy Rumpf jrumpf at heavyload.net
Wed Mar 26 09:51:01 EST 2003


On Wednesday 26 March 2003 08:57 am, Oliver Pitzeier wrote:
> Jeremy Rumpf wrote:
> > This has been on this list in the past, this post is on an
> > older release, but is the problem is the same. The imap server
> > dumps when a message from Outlook or Outlook Express is copied
> > to it. Machine is an older alpha  ev5.6. Here's a recap:
>
> [ ... ]
>
> Thanks a lot Jeremy. But nobody had a solution, I'm I correct? Because the
> problem still exists... I do now have a solution wich is not fine... Maybe
> one of the cyrus developers helps me to do it better...
>
> Best regards,
>  Oliver

Actually, I think someone a while ago had come up with a solution. I'm not 
sure how proper it is, you can decide. Here's a copy of the post from Fritz 
Test <Fritz.Test at bam.de> :



Recently I ran into the same trouble (signalled to death by 11) with
Outlook Clients moving mails to a Cyrus folder as Jeremy described in
his mail on the info-cyrus list in August last year (see URL above).

I'm using Simon Matter's last SRPM Packages on COMPAQ DS20, RedHat Linux
7.2/Alpha.

With help of the analysis of Jeremy (Thanks) I patched the function
mkgmtime, such that it works for me now. The problem is, that gmtime(&t)
returns a null pointer for my 64-bit system if t is out of some range. I
don't know exactly what range, but I assume that the generated value for
the year must fit in 32 bits?.

Here's a snipped of my code in mkgmtime.c

-----------------------------------------------

  /*
  ** If time_t is signed, then 0 is the median value,
  ** if time_t is unsigned, then 1 << bits is median.
  */
  t = (t < 0) ? 0 : ((time_t) 1 << bits)
     ;

  /* Patch begin */
  /* 
  ** On my 32-bit Debian GNU/Linux 3.0 AMD K6 PC, the algorithm
  ** converges in a range 
  ** from
  **              1901-12-13 20:46:00 GMT -> -2147483640
  ** to 
  **              2038-01-19 03:14:07 GMT ->  2147483647 
  */

  /* 
  ** It segfaults on RedHat 7.2/Alpha if bits > 56, since gmtime (&t) 
  ** returns null pointer.
  ** Hence, set bits to a resonable value <= 56.
  **
  ** Setting, e.g. bits=40, the algorithm converges in a range 
  ** from
  **            -32873-11-12 23:24:00 GMT -> -1099511627760
  ** to 
  **             36812-02-20 00:36:59 GMT ->  1099511627819
  */
  if (bits > 40) {
    bits = 40;
  }
  /* patch end */

  for ( ; ; ) {

    prt (t);
    fprintf (stderr, " ");

----------------------------------------------------------

Hope this helps

        Tom




More information about the Info-cyrus mailing list