-
Notifications
You must be signed in to change notification settings - Fork 142
Open
Description
Users see 'could not bind local socket: Invalid argument' in their error stream when using qsub -X. The error originates from
torque/src/lib/Libnet/port_forwarding.c
Line 440 in 8a0b748
| fprintf(stderr, "could not bind local socket: %s", strerror(errno)); |
It is because the get_local_address() function returns a sa_family=AF_INET struct but the loop at
torque/src/lib/Libnet/port_forwarding.c
Lines 420 to 446 in 8a0b748
| for (ai = aitop; ai; ai = ai->ai_next) | |
| { | |
| /* Create a socket. */ | |
| sock = socket(ai->ai_family, SOCK_STREAM, 0); | |
| if (sock < 0) | |
| { | |
| fprintf(stderr, "socket: %.100s", strerror(errno)); | |
| continue; | |
| } | |
| #ifdef BIND_OUTBOUND_SOCKETS | |
| /* Bind to the IP address associated with the hostname, in case there are | |
| * muliple possible source IPs for this destination.*/ | |
| // don't bind localhost addr | |
| if (!islocalhostaddr(&local)) | |
| { | |
| if (bind(sock, (struct sockaddr *)&local, sizeof(sockaddr_in))) | |
| { | |
| fprintf(stderr, "could not bind local socket: %s", strerror(errno)); | |
| close(sock); | |
| continue; | |
| } | |
| } | |
| #endif |
I've submitted #458 as a potential fix, but should probably be revisited so that it will work with IPv6. Note that the IPv6 limitation is one of get_local_address() and not the patch.
Metadata
Metadata
Assignees
Labels
No labels