www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - vibe.d Error only with Firefox

reply Martin Tschierschke <mt smartdolphin.de> writes:
Hello,
when starting my vibe.d service I get the message of failed 
address binding:
Failed to listen on 127.0.0.1:8030
Failed to listen on 10.0.0.1:8030
object.Exception ../../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/http/vibe/
ttp/server.d(2035): Failed to listen for incoming HTTP connections on any of
the supplied interfaces.

This has been mentioned here:
http://forum.rejectedsoftware.com/groups/rejectedsoftware.vibed/thread/3480/

The strange thing is now, that when using Chromium 
http://10.0.0.1:8030 works!
But with Firefox http://10.0.0.1:8030

gives the long Error:
400 - Bad Request

Bad Request

Internal error information:
object.Exception ../../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/stream/vibe/strea
/operations.d(363): Reached maximum number of bytes while searching for end
marker.
----------------
...
truncated
....
./../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/core/vibe/core/core.d:1269 void
vibe.core.core.CoreTask.run() [0x94574a]
??:? void core.thread.Fiber.run() [0xa3c7ff]
??:? fiber_entryPoint [0xa3c562]
??:? [0xffffffff]

On the other side, when using http://localhost:8030/ or any other 
domain mapped to to 10.0.0.1 (in /etc/hosts) even Firefox works.

The error is relatively new since one of the last Firefox updates.
Jan 05 2018
next sibling parent reply Steven Schveighoffer <schveiguy yahoo.com> writes:
On 1/5/18 11:30 AM, Martin Tschierschke wrote:
 Hello,
 when starting my vibe.d service I get the message of failed address 
 binding:
 Failed to listen on 127.0.0.1:8030
 Failed to listen on 10.0.0.1:8030
 object.Exception ../../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/http/vibe/
ttp/server.d(2035): 
 Failed to listen for incoming HTTP connections on any of the supplied 
 interfaces.
It's attempting to listen on localhost:8030, and 10.0.0.1:8030, but can't bind to either address. Then it looks like you get an exception. Does it actually continue running?
 
 This has been mentioned here:
 http://forum.rejectedsoftware.com/groups/rejectedsoftware.vibed/thread/3480/ 
This is a different problem, where it attempts to listen on INADDR_ANY for both IPv6 and IPv4, but binding to IPv6 automatically binds to IPv4, so the second listen fails. One succeeded, so notice you don't get an exception.
 The strange thing is now, that when using Chromium http://10.0.0.1:8030 
 works!
Hm.. there are 2 possibilities here: 1. You have another statement somewhere in the same program which listens on that port/address combo (or INADDR_ANY on that port). 2. There's another program that has already bound to that address. Use netstat to see if any program is listening, perhaps you have a stale version of your server running?
 But with Firefox http://10.0.0.1:8030
 
 gives the long Error:
 400 - Bad Request
 
 Bad Request
 
 Internal error information:
 object.Exception ../../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/stream/vibe/strea
/operations.d(363): 
 Reached maximum number of bytes while searching for end marker.
 ----------------
 ....
 truncated
 .....
 ../../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/core/vibe/core/core.d:1269 
 void vibe.core.core.CoreTask.run() [0x94574a]
 ??:? void core.thread.Fiber.run() [0xa3c7ff]
 ??:? fiber_entryPoint [0xa3c562]
 ??:? [0xffffffff]
This looks like a real error that isn't related to the bindings (as long as it's not some weird stale server). I'd suggest trying to create a minimal example and post it to vibe.d's issue tracker.
 
 On the other side, when using http://localhost:8030/ or any other domain 
 mapped to to 10.0.0.1 (in /etc/hosts) even Firefox works.
I think you need to post a working example in order for anyone to diagnose. -Steve
Jan 05 2018
next sibling parent WebFreak001 <d.forum webfreak.org> writes:
On Friday, 5 January 2018 at 16:47:53 UTC, Steven Schveighoffer 
wrote:
 On 1/5/18 11:30 AM, Martin Tschierschke wrote:
 Hello,
 when starting my vibe.d service I get the message of failed 
 address binding:
 Failed to listen on 127.0.0.1:8030
 Failed to listen on 10.0.0.1:8030
 object.Exception ../../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/http/vibe/
ttp/server.d(2035): Failed to listen for incoming HTTP connections on any of
the supplied interfaces.
It's attempting to listen on localhost:8030, and 10.0.0.1:8030, but can't bind to either address. Then it looks like you get an exception. Does it actually continue running?
That error is always there, don't worry about it OP. The issue you are having doesn't have anything to do with the binding, after all you get a 400 error from the server.
 But with Firefox http://10.0.0.1:8030
 
 gives the long Error:
 400 - Bad Request
 
 Bad Request
 
 Internal error information:
 object.Exception ../../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/stream/vibe/strea
/operations.d(363): Reached maximum number of bytes while searching for end
marker.
 ----------------
 ....
 truncated
 .....
 ../../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/core/vibe/core/core.d:1269 void
vibe.core.core.CoreTask.run() [0x94574a]
 ??:? void core.thread.Fiber.run() [0xa3c7ff]
 ??:? fiber_entryPoint [0xa3c562]
 ??:? [0xffffffff]
This looks like a real error that isn't related to the bindings (as long as it's not some weird stale server). I'd suggest trying to create a minimal example and post it to vibe.d's issue tracker.
Also try checking the developer tools of both browsers to see what headers they are sending, vibe.d probably has a problem with one of those and breaks because of it. But to be sure for sure you need to provide a code example.
Jan 06 2018
prev sibling parent Martin Tschierschke <mt smartdolphin.de> writes:
On Friday, 5 January 2018 at 16:47:53 UTC, Steven Schveighoffer 
wrote:
 On 1/5/18 11:30 AM, Martin Tschierschke wrote:
 Hello,
 when starting my vibe.d service I get the message of failed 
 address binding:
 Failed to listen on 127.0.0.1:8030
 Failed to listen on 10.0.0.1:8030
 object.Exception ../../.dub/packages/vibe-d-0.8.2-rc.2/vibe-d/http/vibe/
ttp/server.d(2035): Failed to listen for incoming HTTP connections on any of
the supplied interfaces.
It's attempting to listen on localhost:8030, and 10.0.0.1:8030, but can't bind to either address. Then it looks like you get an exception. Does it actually continue running?
Yes it works, the only strange thing is, that firefox seams to handle the direct use of the ip-address in a strange way. sudo netstat -nlp | grep 8030 tcp 0 0 10.0.0.1:8030 0.0.0.0:* LISTEN 31181/mysql-browse tcp 0 0 127.0.0.1:8030 0.0.0.0:* LISTEN 31181/mysql-browse looks o.k., (mysql-browse is my program). I will try to minimize my program, to see if it has anything to do with my coding or if the error is caused by something else. Thank you all (Steven, Webfreak and Crimaniak). As mentioned before in "normal" environments, when using a name based request, there is no error, so I can work around it, but for people just starting with vibe + Firefox the first impression should not be: Oh, what the ... is that ... :-)
Jan 08 2018
prev sibling parent crimaniak <crimaniak gmail.com> writes:
On Friday, 5 January 2018 at 16:30:07 UTC, Martin Tschierschke 
wrote:
...
 Failed to listen on 127.0.0.1:8030
 Failed to listen on 10.0.0.1:8030
...
 The strange thing is now, that when using Chromium 
 http://10.0.0.1:8030 works!
 But with Firefox http://10.0.0.1:8030
 gives the long Error:
 400 - Bad Request
I would first figure out what happens to the port 8030. Run this command before and after starting the application to see who is really listening: sudo netstat -nlp | grep 8030
Jan 06 2018