This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: mktime call hangs on Cygwin 1.7.30, Windows 7 32 bit


On Tue, Sep 02, 2014 at 01:32:29PM +0200, Marco Atzeri wrote:
> On 02/09/2014 13: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");
> -       printf("Worked");
> -       printf("Worked\n");
> >}
> >
> >$ gcc cygwin-mktime-bug.c -o cygwin-mktime-bug -I/usr/include -g
> >$ ./cygwin-mktime-bug.exe
> >Working...
> >
> no issue on my side.
I've tested on another machines with Cygwin v1.7.11 and v1.7.25. And it
worked. That`s Ok.
Also, I've run ./cygwin-mktime-bug.exe in CMD, and SUPRISINGLY it
worked, but when I run the SAME `cygwin-mktime-bug.exe` in `bash -l -i` it does not!

Ha-ha! After I've wrote text above, I've tested run `cygwin-mktime-bug.exe`
in `bash`, `bash -i`, `bash -l` AND(!) it worked well in first TWO
cases (`bash` & `bash -i`), and DOES NOT in `bash -l`.
How can it be? 8-O
> 
> $ LIMIT=1000
> $ for ((a=1 ; a <= LIMIT ; a++ )); do ./cygwin-mktime-bug.exe ; done
> 
> Working...
> Worked
> ...
> Working...
> Worked
> $
> 
> 
> >
> >So, there is a question: how to fix it?
> >Nota bene: I do not want to use Cygwin x64 (there were no exim when I've tested it).
> 
> 32 bit here.
> 
> $ uname -svr
> CYGWIN_NT-6.1-WOW64 1.7.32(0.274/5/3) 2014-08-13 23:03
> 
> please update to 1.7.32 and than follows:
> https://cygwin.com/problems.html
> 
> Regards
> Marco
> 
> --
> Problem reports:       http://cygwin.com/problems.html
> FAQ:                   http://cygwin.com/faq/
> Documentation:         http://cygwin.com/docs.html
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]