Michael Bell
f1a6056953
Immediately close bad connections to prevent file exhaustion
...
osrm-routed does not immediately clean up a keep-alive connection
when the client closes it. Instead it waits for five seconds
of inactivity before removing.
Given a setup with low file limits and clients opening and
closing a lot of keep-alive connections, it's possible for
osrm-routed to run out of file descriptors whilst it waits for
the clean-up to trigger.
Furthermore, this causes the connection acceptor loop to exit.
Even after the old connections are cleaned up, new ones
will not be created. Any new requests will block until the
server is restarted.
This commit improves the situation by:
- Immediately closing connections on error. This includes EOF errors
indicating that the client has closed the connection. This releases
resources early (including the open file) and doesn't wait for the
timer.
- Log when the acceptor loop exits. Whilst this means the behaviour
can still occur for reasons other than too many open files,
we will at least have visibility of the cause and can investigate further.
2021-09-04 01:55:36 +01:00
Patrick Niklaus
155ca8b1f1
Update src/server/api/url_parser.cpp
...
Co-authored-by: Michael Bell <moke.byll@gmail.com>
2021-09-03 10:55:53 +02:00
Patrick Niklaus
03001ff90a
Fix ranges
2021-09-03 10:55:53 +02:00
Patrick Niklaus
38df7d5e05
Fix the URL parser for special chars in profile
2021-09-03 10:55:53 +02:00
Daniel Patterson
50d9632ed7
Upgrade formatting to clang-format 10 ( #5895 )
...
* Update formatting tools to clang-format-10
* Reformat using clang-format-10.0.09
2020-11-26 07:21:39 -08:00
marius
6d8cf826d7
modified FSM so that the whitespace between header-key and value is optional
2019-11-19 18:30:21 +01:00
Tom Peoples
018a9bc804
Removed un-needed calls to std::move
...
These calls were throwing a pessimistic move error and stopping compilation.
2019-09-26 17:55:19 +10:00
Denis Chaplygin
746b2e94a0
Formatted the code
2019-09-10 15:50:13 +03:00
Denis Chaplygin
43f60bc69c
We should check, is connections is still open and gracefully return on connection closed by remote.
2019-09-10 14:32:16 +03:00
Denis Chaplygin
145974bc92
clear input/output buffers during keepalive clean-up procedure.
...
Should fix #5545
2019-09-09 11:20:47 +03:00
Lev Dragunov
f1a4b70a56
Merge pull request #5513 from akashihi/flatbuffers
...
Flatbuffers support added
2019-08-29 13:11:24 +03:00
Denis Chaplygin
cd7229ba06
connection's reply needs to be reset before handling next request on same connection.
2019-08-28 17:22:07 +03:00
Denis Chaplygin
a9c187c99b
Updated changelog entry
2019-08-26 11:09:38 +03:00
Denis Chaplygin
90191c9f34
Added flatbuffers output support to the 'Match' service
2019-08-26 11:08:56 +03:00
Denis Chaplygin
b7e9e5f2c0
Added flatbuffers output support to the 'Trip' service.
2019-08-26 11:08:56 +03:00
Denis Chaplygin
affa8a4653
Added flatbuffers output support to the 'Route' service.
2019-08-26 11:08:56 +03:00
Denis Chaplygin
9d7a74445d
Added flatbuffers output support to the 'Nearest' service.
2019-08-26 11:08:56 +03:00
Denis Chaplygin
7ddda105a3
Added flatbuffers support to the PluginBase::Error
...
This changes BREAKS osrm.
2019-08-26 11:08:56 +03:00
Denis Chaplygin
56406e80ce
Added flatbuffer support to the server request handler.
2019-08-26 11:08:56 +03:00
Denis Chaplygin
75aadb0f3f
Passed ResultT down to engine plugins, so now they can form replies in different formats.
2019-08-26 11:08:56 +03:00
Denis Chaplygin
9efcab2108
Receive timeout should only be active for a second and
...
following requests on a keep-alive connections.
2019-08-23 12:21:54 +03:00
Denis Chaplygin
a7b7d77e1f
Formatted the code.
2019-08-23 12:21:54 +03:00
Denis Chaplygin
22550d078f
Added timeout handling for keep-alive operations.
2019-08-23 12:21:54 +03:00
Denis Chaplygin
a0582a3e68
Added keep-alive support to the http server.
2019-08-23 12:21:54 +03:00
Denis Chaplygin
92c7b6fbd1
Added 'Connection' header extraction.
2019-08-23 12:21:54 +03:00
Kajari Ghosh
01ca32c81c
Fix fallback speed validity checks ( #5300 )
...
* fix fallback_speeds check to only accept values > 0
* add invalid_fallback_speed
2018-12-10 14:53:30 -05:00
Kajari Ghosh
2e17f3010a
Add a multiplier to the matrix ( #5298 )
...
* add a multiplier to the matrix
* add rounding
* remove scale_factor restrictions
* clamp for overflow error
* update check to match error message
* enforce clamping on < 0 and increase test coverage
* add an invalid scale_factor value to node tests
* increase test coverage
* changelog
2018-12-10 13:41:44 -05:00
Daniel Patterson
985ab58f45
Add feature to fill null table entries with as-the-crow-flies estimates.
2018-11-02 01:07:24 -07:00
Michael Krasnyk
a8f3474996
Use unsigned type in percent_encoding to prevent overflow for %80..%ff
...
Related fix in Boost.Spirit 80414bc688
2018-01-08 12:09:33 +00:00
FILLAU Jean-Maxime
82a149eb87
Propagating approach parameter to every phantom nodes search function.
...
Propagating approach parameter for plugins :
- tabler
- nearest
- trip
Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
FILLAU Jean-Maxime
f65299d665
Rename side API
...
Side -> Approach
- DEFAULT -> CURB
- BOTH -> UNRESTRICTED
- remove OPPOSITE param
Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
FILLAU Jean-Maxime
8e70c87e64
New "sides" setting in base parameters for phantom nodes.
...
- Adding sides parameter into base parameters, it can take the values SIDE, OPPOSITE or DEFAULT.
- Adding url parser for "sides" parameter, url values are "s" for SIDE, "o" for OPPOSITE and "d" for DEFAULT, example : "sides=s;s".
- Checking parameters, if "sides" parameter is used, the number of parameter is the same as number of location.
- Create a phantom to start at side driving or Opposite side driving.
Signed-off-by: FILLAU Jean-Maxime <jean-maxime.fillau@mapotempo.com>
2017-05-30 10:19:41 +00:00
Daniel J. Hofmann
35c4c2a256
Fixes use-after-move, closes #3820
2017-03-16 14:42:48 +01:00
Bhargav Chippada
3c81baa26e
Nearest Service #coordinates >=1
2017-03-15 22:42:08 +00:00
Daniel J. Hofmann
f82740ed93
Logs the current thread's id in assertions and for requests, resolves #3534
2017-01-12 16:43:03 +01:00
Daniel J. Hofmann
1153b78c06
Fixes various compiler diagnostics
...
Found with LLVM 3.9.1 and then fixed the most severe categories.
2017-01-06 16:47:52 +01:00
Daniel Patterson
468d8c0031
Refactor logging, improve error handling workflow, clang-format. ( #3385 )
2016-12-06 12:30:46 -08:00
Moritz Kobitzsch
a1127c3e09
reduce numbers of intersections in findNextIntersection, don't normalise for turn lanes
2016-11-30 10:21:53 +01:00
Lev Dragunov
045d25041f
Review fixes.
2016-11-12 02:05:48 +01:00
Lev Dragunov
170923874b
Add request duration to routed logs.
2016-11-12 02:05:48 +01:00
Michael Krasnyk
3e18e31bc9
Added percent-encoding to URL parser
...
Reference:
https://tools.ietf.org/html/rfc1738
2016-11-07 14:16:51 +01:00
Moritz Kobitzsch
cd03877c90
link ConnectedRoad and TurnOperation via class hierarchy
...
and empower intersection by adding basic functionality to pod type
refactor extractor/toolkit into intersection
2016-11-03 13:42:29 +01:00
Denis Koronchik
5da63998d6
Add support of custom ServiceHandler
2016-10-31 15:38:03 +01:00
Huyen Chau Nguyen
d0c142b9c7
remove util self-written make_unique and use C++14 stdlib make_uniqe
2016-10-17 15:27:14 -07:00
Patrick Niklaus
240a7696da
Catch boost bad_numeric_cast exception and let parser return an error
2016-10-11 00:04:53 +02:00
Patrick Niklaus
04667f1ed8
Log incoming requests before they are processed
2016-07-11 16:50:09 +02:00
Daniel Patterson
494845b160
Copy data to beginning of buffer, not end. ( #2542 )
...
Copy data to beginning of buffer, not end.
2016-06-13 12:59:42 -07:00
Daniel J. Hofmann
033dc0a72d
Pre-allocate up-front whenever possible
2016-06-09 16:06:27 +02:00
Daniel J. Hofmann
503137221d
Let osrm-routed log status code, fixes #512 .
...
Disclaimer: osrm-routed is not recommended for production usage.
Use node-osrm instead: https://github.com/Project-OSRM/node-osrm
2016-05-31 14:44:50 +02:00
Patrick Niklaus
6e16eab6ec
Format with clang-format 3.8
2016-05-27 21:05:04 +02:00