Date: Wed, 28 Jul 1999 12:22:49 -0400 From: "Lawrence D. Lopez" <lawlopez@cisco.com> To: mi@aldan.algebra.com Cc: questions@freebsd.org, stable@freebsd.org, eischen@vigrid.com, jb@cimlogic.com.au Subject: Re: uthread_init.c: 'Cannot get stdio flags' :-( Message-ID: <379F2E59.FA8EA348@cisco.com> References: <199907280157.VAA07727@misha.cisco.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Oh shucks, give me something hard.
HylaFAX closed fd 0 before it did
a fork exec.
Threads require fd 0 to exist.
Larry
Mikhail Teterin wrote:
>
> Hello!
>
> Under what circumstances could a panic:
>
> Fatal error 'Cannot get stdio flags' at line ? in file
> /usr/src/lib/libc_r/uthread/uthread_init.c (errno = ?)
>
> be triggered?
>
> We are trying to replace HylaFAX's ${PREFIX}/sbin/faxsend with our own
> application, which is written with threads. The app works fine if called
> directly -- from command line. But it dies a horrible death when
> actually invoked by HylaFAX's ${PREFIX}/sbin/faxq. Here is a rather
> short ktrace produced by replacing faxsend with a shell wrapper:
>
> 1157 ktrace RET ktrace 0
> 1157 ktrace CALL execve(0xbfbfdc23,0xbfbfdaec,0xbfbfdb00)
> 1157 ktrace NAMI "/usr/local/sbin/faxsend.bin"
> 1157 faxsend.bin RET execve 0
> 1157 faxsend.bin CALL getpid
> 1157 faxsend.bin RET getpid 1157/0x485
> 1157 faxsend.bin CALL fcntl(0,0x3,0)
> 1157 faxsend.bin RET fcntl -1 errno 9 Bad file descriptor
> 1157 faxsend.bin CALL write(0x2,0xbfbfd9ac,0x6e)
> 1157 faxsend.bin GIO fd 2 wrote 110 bytes
> "Fatal error 'Cannot get stdio flags' at line ? in file /usr/src/lib/libc_r/ut\
> hread/uthread_init.c (errno = ?)
> "
> 1157 faxsend.bin RET write 110/0x6e
> 1157 faxsend.bin CALL setitimer(0x2,0xbfbfd968,0)
> 1157 faxsend.bin RET setitimer 0
> 1157 faxsend.bin CALL close(0xffffffff)
> 1157 faxsend.bin RET close -1 errno 9 Bad file descriptor
> 1157 faxsend.bin CALL close(0xffffffff)
> 1157 faxsend.bin RET close -1 errno 9 Bad file descriptor
> 1157 faxsend.bin PSIG SIGSEGV SIG_DFL
>
> First the thread library panics and then segfaults before our main()
> even gets a chance to do anything...
>
> The entire app is compiled with "-D_THREADSAFE -pthread" and linked with
> "-pthread -static" (tried dynamic too). The only other library -- -lm is
> not rebuilt with thread awareness, though.
>
> The problem is perfectly reproducible on FreeBSD 3.0-RELEASE as well as
> on 3.2-RELEASE...
>
> Thanks in advance for any hints. Yours sincerely,
>
> -mi
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?379F2E59.FA8EA348>
