On Sep 2 15:10, Alexey Shumkin wrote:
> Prelude.
> I use "self-compiled" Git (v2.x) on Cygwin (v1.7.30).
> Sometimes Git v2.0.4 hung while performing
> git prune --expire 2.weeks.ago
>
> I have investigated while debugging that `mktime` call hung.
> But that was an avoidable bug (skip prune - and all is ok). So, I've not
> reported it.
>
> But after updating Git to v2.1.0
> git commit --amend -C HEAD --date=''
> hangs, too. And now it is the often used operation by me.
> So, I've made a simple example (copied from Git sources) to reproduce
> the error.
>
> $ cat cygwin-mktime-bug.c
> #include <time.h>
> #include <string.h>
> #include <stdio.h>
>
> int main(int argc, char **argv)
> {
> struct tm tm;
>
> memset(&tm, 0, sizeof(tm));
> tm.tm_year = -1;
> tm.tm_mon = -1;
> tm.tm_mday = -1;
> tm.tm_isdst = -1;
> tm.tm_hour = -1;
> tm.tm_min = -1;
> tm.tm_sec = -1;
>
> printf("Working...\n");
> time_t temp_time = mktime(&tm);
> printf("Worked");
> }
>
> $ gcc cygwin-mktime-bug.c -o cygwin-mktime-bug -I/usr/include -g
> $ ./cygwin-mktime-bug.exe
> Working...Works fine for me every time on Cygwin 1.7.32 32 and 64 bit. I ran your testcase 1000 times in a loop. It's slow, but it never hangs. Btw., the code of mktime and low level stuff is basically identical to the NetBSD implementation it has been taken from. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
pgpqPGASc8Lg7.pgp
Description: PGP signature

