Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Running osrm-routed getting error #3749

Closed
billystalnaker opened this issue Feb 24, 2017 · 11 comments
Closed

Running osrm-routed getting error #3749

billystalnaker opened this issue Feb 24, 2017 · 11 comments

Comments

@billystalnaker
Copy link

billystalnaker commented Feb 24, 2017

Hi, I ran osrm-routed on a north-america file and received this output:

[info] Threads: 8
[info] IP address: 0.0.0.0
[info] IP port: 80
[info] http 1.1 compression handled by zlib version 1.2.8
[info] Listening on: 0.0.0.0:80
[info] load names from: "/usr/src/osrm/osrm-backend/north-america-latest.osrm.names"
[info] set checksum: 823789383
[info] running and waiting for requests
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
  what():  remote_endpoint: Transport endpoint is not connected

I'm not sure how to handle this error. exact command: osrm-routed -p 80 north-america-latest.osrm

@oxidase
Copy link
Contributor

oxidase commented Feb 24, 2017

@billystalnaker could you give more information about your system and osrm configuration. there were some related regressions in boost 1.54

@billystalnaker
Copy link
Author

uname -a 4.4.0-64-generic #85-Ubuntu SMP Mon Feb 20 11:50:30 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Mem: 2G
CPU's 1

As far as osrm configuration I'm not sure what you want. We are using the car.lua profile. Hope that helps

@oxidase
Copy link
Contributor

oxidase commented Feb 24, 2017

for osrm configuration i mean output of cmake with an empty cache: cd build && rm CMakeCache.txt && cmake ... The output will contain configuration flags and found library versions.

EDIT: The configuration is needed to cut off possible bugs in libraries. The exception must be handled at

std::shared_ptr<std::thread> thread = std::make_shared<std::thread>(
boost::bind(&boost::asio::io_service::run, &io_service));
similar to the answer in http://stackoverflow.com/a/22427401

Don't know how reliable osrm server must be, because it is just a demo?
/cc @TheMarex @daniel-j-h

@billystalnaker
Copy link
Author

Does that cmake .. rebuild the entire project? I don't want to go through that again...

@daniel-j-h
Copy link
Member

No it will just generate the Makefile and related files again. You can also use https://hub.docker.com/r/osrm/osrm-backend/tags/ and try if you have the same issues with it.

@oxidase osrm-routed really is just a dev server for testing - nothing to prioritize there.

@oxidase
Copy link
Contributor

oxidase commented Feb 24, 2017

@billystalnaker the most important is the boost version . if boost libraries are installed as deb packages and used from the system than output of dpkg -l | grep libboost-system would be enough. But any other locally installed version can be used in the osrm configuration. If the boost version is 1.54 than it can be a problem in Boost.Asio and you can try to update boost version and rebuild osrm.
If the boost version >= 1.55 than problem can be on a client side, but i can not guess what could happen. The error just says that a client dropped connection for whatever reason. Probably tcpdump or wireshark can show what happened with the connection.

@daniel-j-h basically thread loop must contain try/catch around io_service::run. But handling exception will not solve the original problem 😞

@billystalnaker
Copy link
Author

@daniel-j-h what do you mean by osrm-touted being a dev server? I was under the impression that this is the command to serve all requests to the osrm package.. I will take a look into the boost library on Monday

@daniel-j-h
Copy link
Member

No, osrm-routed is a ad hoc development HTTP server it doesn't even supper HTTP KeepAlive for example. We recommend https://github.com/Project-OSRM/node-osrm for production use.

@billystalnaker
Copy link
Author

ubuntu: dpkg -l | grep libboost-system

ii  libboost-system1.58-dev:amd64          1.58.0+dfsg-5ubuntu3.1            amd64        Operating system (e.g. diagnostics support) library
ii  libboost-system1.58.0:amd64            1.58.0+dfsg-5ubuntu3.1            amd64        Operating system (e.g. diagnostics support) library

In the quick start maybe it should say something like "If you're using this in production, then use node-osrm."? I was under the impression that we were good to go with just the osrm-routed command.

@billystalnaker
Copy link
Author

Please bare with me on this. But I've installed node-osrm on my server. and used make to make the files.. What do I do now? I am supposed to be running a node server..?

@daniel-j-h
Copy link
Member

You can do npm install osrm to get the latest release. Then check binaries and profiles in node_modules/osrm and prepare your data with them. Then see

https://github.com/Project-OSRM/node-osrm/blob/master/example/server.js

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants