Signaled to death by 11

Rob Siemborski rjs3 at andrew.cmu.edu
Mon Apr 7 12:53:36 EDT 2003


After discussing with Larry, I've applied both this and my patch.  (Since
though this causes us an eventual date problem, we already have plenty of
Y2.037k-or-whenever problems.

-Rob

On Wed, 26 Mar 2003, Jeremy Rumpf wrote:

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

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Rob Siemborski * Andrew Systems Group * Cyert Hall 207 * 412-268-7456
Research Systems Programmer * /usr/contributed Gatekeeper





More information about the Info-cyrus mailing list