This is the mail archive of the cygwin@cygwin.com 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] |
Good morning (%$TZ) everyone, Right. The attached sertest.c is a very simple program that attempts to open the serial port, does a select () call waiting for a byte to read with a 250ms timeout, and closes it. It works fine with the released version 1.5.5-1 of the .dll, but it locks up when run with the 20040103 snapshot of the .dll. In fact, I've just quickly retested it with the cygwin1-20031218.dll and that also locks up. So the bug was introduced between Sep19 and Dec18 last year. Looking through the changelog for the relevant period, there are some select-related changes by cgf and some serial-related changes from Brian Ford. I would be trying to debug my way through the source at the moment, but when I checked out the latest from the CVS, I ended up with a completely non-functioning .dll (100% fails on 'make check', any attempt to launch a cygwin process crashes on startup).... So I'm kinda stuck there. I'll maybe try again after the weekend, but right now I got to get on with some work, so I hope this is a useful bug report. cheers, DaveK ------------ Details attached: (sorry for the .bz2 format, but two sets of cygcheck output already take me to 60kb, and the list mailer refuses anything over 100k) * release-dll.log and snapshot-dll.log: Traces from sysinternals' PORTMON utility. These show that the behaviour of the two dll versions is identical through setup and initialisation of the com port up to the point when an IOCTL_SERIAL_WAIT_ON_MASK is sent; for some reason, the call succeeds quickly with the release dll, but with the snapshot version, the call blocks seemingly indefinitely, and remains so until you manually kill the sertest.exe process, at which point it gets cancelled. * release-dll.txt and snapshot-dll.txt: Output generated by running the same build of the testcase under each .dll, and cygcheck -s output to confirm the dll versions used in each testrun. * strace-release-dll.out and strace-snapshot-dll.out: strace output from each of the test runs. I notice two things about these: 1) the last output from the snapshot version of the dll says "select_stuff::cleanup: calling cleanup routines", which suggests that it's one of those that has hung. 2) the release version of the dll appears to be repeatedly peeking the serial port, there are *loads* of lines that say "[select_serial] sertest 1896 peek_serial: fh->overlapped_armed 1", whereas with the snapshot version of the dll there's only one line saying peek_serial, and it has the value 0 for overlapped_armed. ------------
Attachment:
sertest.c
Description: Text document
Attachment:
makefile
Description: Binary data
Attachment:
release-dll.txt.bz2
Description: Binary data
Attachment:
snapshot-dll.txt.bz2
Description: Binary data
Attachment:
strace-snapshot-dll.out.bz2
Description: Binary data
Attachment:
strace-release-dll.out.bz2
Description: Binary data
Attachment:
release-dll.LOG
Description: Binary data
Attachment:
snapshot-dll.LOG
Description: Binary data
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |