Comments (17)
@reem @seanmonstar have you seen something like this before?
@andor44 do you have code to reproduce?
from rustless.
I haven't. I'm guessing there's a bug in hyper's ListenerPool
that causes it to drop threads.
from rustless.
Logs would also be useful, if possible (RUST_LOG=hyper=trace
and usage of env_logger
).
from rustless.
@s-panferov I do not have any, yet. I'll see if I can reproduce this with a minimal code example, but like I said, the problem is that this seems to manifest itself over time
@seanmonstar I provided that env var but I see no output whatsoever.
from rustless.
@andor44 you need to set up a logger. The env_logger
package on crates.io uses the env var.
from rustless.
@seanmonstar gotcha. I'll keep logging and see if I can catch anything.
from rustless.
Okay, I hit the point where it doesn't accept connections again. I can see a lot of
TRACE:hyper::http: TODO: handle obs-folding (gross!)
But this doesn't seem very relevant. What seems more worrying is that every request seems to end in
DEBUG:hyper::http: read request line
DEBUG:hyper::server: ioerror in keepalive loop = HttpIoError(IoError { kind: EndOfFile, desc: "end of file", detail: None })
And then a new one begins again with DEBUG:hyper::server: Incoming stream
. The last request that was processed didn't end up up in that error though.
from rustless.
The EOF error is normal, it's how the server knows the connection was
closed. That's why it's only DEBUG. Unexpected errors log at ERROR.
However, EndOfFile errors were changed to something else with the new IO.
Are you using latest hyper?
On Tue, Mar 10, 2015, 2:23 AM Andor Uhlรกr [email protected] wrote:
Okay, I hit the point where it doesn't accept connections again. I can see
a lot of
TRACE:hyper::http: TODO: handle obs-folding (gross!)
But this doesn't seem very relevant. What seems more worrying is that
every request seems to end inDEBUG:hyper::http: read request line
DEBUG:hyper::server: ioerror in keepalive loop = HttpIoError(IoError { kind: EndOfFile, desc: "end of file", detail: None })And then a new one begins again with DEBUG:hyper::server: Incoming stream.
The last request that was processed didn't end up up in that error though.โ
Reply to this email directly or view it on GitHub
#35 (comment).
from rustless.
I'm on 0.1.13 according to my Cargo.lock
. I tried updating earlier last week but was unable to, due to deuterium being out of date IIRC.
from rustless.
@andor44 not it's ok, please try the new version.
from rustless.
I am still just guessing, but what might be going on is that every thread in the pool is occupied in a keep-alive loop and the connections are never being closed.
from rustless.
I've updated to today's rustc nightly, plus all the highest versions available on crates.io (hyper 0.3.0, rustless 0.5.8). I'll let you know how it goes with this.
FWIW, I'm now seeing
ERROR:hyper::server: request error = HttpMethodError
at the end of requests instead of the IoError
from rustless.
@reem maybe we can add some more debugging logging (in temp branch of hyper) to check your idea?
from rustless.
This still happens with hyper 0.3.0
from rustless.
The situation @reem described sounds very plausible, as these are mobile clients that are sending Connection: keep-alive
. I'll try bump the number of threads until it's fixed. It'd be probably a good idea to take this over to hyper's issue tracker.
from rustless.
@andor44 yes, could you please make an issue there?
I also would be glad if you give me some common feedback about Rustless and maybe some thoughts about additional features you want.
from rustless.
Opened hyperium/hyper#368.
@s-panferov I'll try to collect my thoughts and probably open a separate issue with them in the not too distant future, if that's ok
from rustless.
Related Issues (20)
- Basic usage example doesn't compile on rustc 1.9 HOT 5
- JSONway not working as response HOT 1
- Optional iron dependency? HOT 1
- Update dependencies HOT 6
- before/after handler HOT 2
- allow more data types in json responses HOT 2
- Parameter values exist in handler but aren't included in the response
- Complete auth example
- Access iron request object HOT 5
- rustless.org domain name expired HOT 4
- Better doc for swagger
- Inconsistent dependencies of Cookie and openssl HOT 2
- Example simple.rs doesn't work? HOT 4
- Upgrade to Iron 0.5 HOT 1
- Website domain redirecting to placeholder page HOT 2
- Cannot run example from readme HOT 1
- Owner here: Does community need this crate? HOT 1
- Future Release HOT 5
- PostgreSQL example broken
- why stop updating all of a sudden
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rustless.