I'm getting fatal errors while trying to connect to a tcp port using 7.5.23:
/home/hermes/bwellive/projects/Pike/7.5/src/backend.cmod:403: Fatal error: Failed to register fd 4 for 0x0041 with /dev/poll (errno:13). Backtrace at time of fatal: object(src/module.c:62).___files()->Fd:
object(src/modules/files/file.c:3909)->set_read_callback(object(/usr/local/pike/7.5.23/lib/module s/Stdio.pmod/module.pmod:102)->__stdio_read_callback) object(/usr/local/pike/7.5.23/lib/modules/Stdio.pmod/module.pmod).File:
object(/usr/local/pike/7.5.23/lib/modules/Stdio.pmod/module.pmod:102)->set_read_callback()
Any idea why these would be _fatal_ errors (ie pike bails out)?
Bill
I'm getting fatal errors while trying to connect to a tcp port using 7.5.23:
Operating system?
/home/hermes/bwellive/projects/Pike/7.5/src/backend.cmod:403: Fatal error: Failed to register fd 4 for 0x0041 with /dev/poll (errno:13).
Errno 13 is usually EACCES. What are the permissions on /dev/poll?
Any idea why these would be _fatal_ errors (ie pike bails out)?
It's a fatal error because there's currently only support for one backend implementation at a time (ie there's no fallback available when the error is detected).
Bill
/ Henrik Grubbström (Lysator)
Previous text:
2004-04-01 19:21: Subject: fatal poll error
I'm getting fatal errors while trying to connect to a tcp port using 7.5.23:
/home/hermes/bwellive/projects/Pike/7.5/src/backend.cmod:403: Fatal error: Failed to register fd 4 for 0x0041 with /dev/poll (errno:13). Backtrace at time of fatal: object(src/module.c:62).___files()->Fd:
object(src/modules/files/file.c:3909)->set_read_callback(object(/usr/local/pike/7.5.23/lib/module s/Stdio.pmod/module.pmod:102)->__stdio_read_callback) object(/usr/local/pike/7.5.23/lib/modules/Stdio.pmod/module.pmod).File:
object(/usr/local/pike/7.5.23/lib/modules/Stdio.pmod/module.pmod:102)->set_read_callback()
Any idea why these would be _fatal_ errors (ie pike bails out)?
Bill
/ Brevbäraren
Operating system?
Sorry; it's Solaris 9 / SPARC.
Errno 13 is usually EACCES. What are the permissions on /dev/poll?
lrwxrwxrwx 1 root root 29 Oct 13 12:38 /dev/poll -> ../devices/pseudo/poll@0:poll crw-rw-rw- 1 root sys 138, 0 Apr 1 12:21 /dev/../devices/pseudo/poll@0:poll
So, to me the permissions look okay...
It's a fatal error because there's currently only support for one backend implementation at a time (ie there's no fallback available when the error is detected).
Yikes... is that as bad as it sounds to me?
Bill
Sorry; it's Solaris 9 / SPARC.
Errno 13 is usually EACCES. What are the permissions on /dev/poll?
lrwxrwxrwx 1 root root 29 Oct 13 12:38 /dev/poll -> ../devices/pseudo/poll@0:poll crw-rw-rw- 1 root sys 138, 0 Apr 1 12:21 /dev/../devices/pseudo/poll@0:poll
So, to me the permissions look okay...
They look ok to me too. The poll(7d) man page says the following about EACCESS:
EACCES A process does not have permission to access the con- tent cached in /dev/poll.
I have no idea why you get it.
Have you changed uid or gid since the pike process started?
It's a fatal error because there's currently only support for one backend implementation at a time (ie there's no fallback available when the error is detected).
Yikes... is that as bad as it sounds to me?
Probably not. It just means that you have to compile with --without-devpoll.
Bill
/ Henrik Grubbström (Lysator)
Previous text:
2004-04-01 20:44: Subject: Re: fatal poll error
Operating system?
Sorry; it's Solaris 9 / SPARC.
Errno 13 is usually EACCES. What are the permissions on /dev/poll?
lrwxrwxrwx 1 root root 29 Oct 13 12:38 /dev/poll -> ../devices/pseudo/poll@0:poll crw-rw-rw- 1 root sys 138, 0 Apr 1 12:21 /dev/../devices/pseudo/poll@0:poll
So, to me the permissions look okay...
It's a fatal error because there's currently only support for one backend implementation at a time (ie there's no fallback available when the error is detected).
Yikes... is that as bad as it sounds to me?
Bill
/ Brevbäraren
So, to me the permissions look okay...
They look ok to me too. The poll(7d) man page says the following about EACCESS:
EACCES A process does not have permission to access the con- tent cached in /dev/poll.
I have no idea why you get it.
Have you changed uid or gid since the pike process started?
Not that I know of. The only unusual thing(s) I can think if is that I'm running as a non-root user, and have used fork() to put the process in the background.
Probably not. It just means that you have to compile with --without-devpoll.
Hmm... will try to figure out what's going on, first, before I result to recompiling.
Bill
Not that I know of. The only unusual thing(s) I can think if is that I'm running as a non-root user, and have used fork() to put the process in the background.
Strange, that shouldn't cause any problems (I think). You might lose some system threads though (like the signal handler thread); I haven't checked.
Hmm... will try to figure out what's going on, first, before I result to recompiling.
I've now improved the diagnostics for this error, so please recompile with an updated backend.cmod.
Bill
/ Henrik Grubbström (Lysator)
Previous text:
2004-04-01 21:43: Subject: Re: fatal poll error
So, to me the permissions look okay...
They look ok to me too. The poll(7d) man page says the following about EACCESS:
EACCES A process does not have permission to access the con- tent cached in /dev/poll.
I have no idea why you get it.
Have you changed uid or gid since the pike process started?
Not that I know of. The only unusual thing(s) I can think if is that I'm running as a non-root user, and have used fork() to put the process in the background.
Probably not. It just means that you have to compile with --without-devpoll.
Hmm... will try to figure out what's going on, first, before I result to recompiling.
Bill
/ Brevbäraren
Sorry; it's Solaris 9 / SPARC.
Errno 13 is usually EACCES. What are the permissions on /dev/poll?
They look ok to me too. The poll(7d) man page says the following about EACCESS:
EACCES A process does not have permission to access the con- tent cached in /dev/poll.
Oops, I missed the following segment:
The /dev/poll driver caches a list of polled file descrip- tors, which are specific to a process. Therefore, the /dev/poll file descriptor of a process will be inherited by its child process, just like any other file descriptors. But the child process will have very limited access through this inherited /dev/poll file descriptor. Any attempt to write or do ioctl by the child process will result in an EACCES error. The child process should close the inherited /dev/poll file descriptor and open its own if desired.
So it looks like Pike's fork() will need to do some extra work for each /dev/poll fd...
Bill
/ Henrik Grubbström (Lysator)
Previous text:
2004-04-01 20:55: Subject: Re: fatal poll error
Sorry; it's Solaris 9 / SPARC.
Errno 13 is usually EACCES. What are the permissions on /dev/poll?
lrwxrwxrwx 1 root root 29 Oct 13 12:38 /dev/poll -> ../devices/pseudo/poll@0:poll crw-rw-rw- 1 root sys 138, 0 Apr 1 12:21 /dev/../devices/pseudo/poll@0:poll
So, to me the permissions look okay...
They look ok to me too. The poll(7d) man page says the following about EACCESS:
EACCES A process does not have permission to access the con- tent cached in /dev/poll.
I have no idea why you get it.
Have you changed uid or gid since the pike process started?
It's a fatal error because there's currently only support for one backend implementation at a time (ie there's no fallback available when the error is detected).
Yikes... is that as bad as it sounds to me?
Probably not. It just means that you have to compile with --without-devpoll.
Bill
/ Henrik Grubbström (Lysator)
So it looks like Pike's fork() will need to do some extra work for each /dev/poll fd...
Potentially fixed.
/ Henrik Grubbström (Lysator)
Previous text:
2004-04-02 13:44: Subject: Re: fatal poll error
Sorry; it's Solaris 9 / SPARC.
Errno 13 is usually EACCES. What are the permissions on /dev/poll?
They look ok to me too. The poll(7d) man page says the following about EACCESS:
EACCES A process does not have permission to access the con- tent cached in /dev/poll.
Oops, I missed the following segment:
The /dev/poll driver caches a list of polled file descrip- tors, which are specific to a process. Therefore, the /dev/poll file descriptor of a process will be inherited by its child process, just like any other file descriptors. But the child process will have very limited access through this inherited /dev/poll file descriptor. Any attempt to write or do ioctl by the child process will result in an EACCES error. The child process should close the inherited /dev/poll file descriptor and open its own if desired.
So it looks like Pike's fork() will need to do some extra work for each /dev/poll fd...
Bill
/ Henrik Grubbström (Lysator)
pike-devel@lists.lysator.liu.se