Coder Social home page Coder Social logo

Comments (17)

s-panferov avatar s-panferov commented on June 8, 2024

@reem @seanmonstar have you seen something like this before?

@andor44 do you have code to reproduce?

from rustless.

reem avatar reem commented on June 8, 2024

I haven't. I'm guessing there's a bug in hyper's ListenerPool that causes it to drop threads.

from rustless.

seanmonstar avatar seanmonstar commented on June 8, 2024

Logs would also be useful, if possible (RUST_LOG=hyper=trace and usage of env_logger).

from rustless.

andor44 avatar andor44 commented on June 8, 2024

@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.

seanmonstar avatar seanmonstar commented on June 8, 2024

@andor44 you need to set up a logger. The env_logger package on crates.io uses the env var.

from rustless.

andor44 avatar andor44 commented on June 8, 2024

@seanmonstar gotcha. I'll keep logging and see if I can catch anything.

from rustless.

andor44 avatar andor44 commented on June 8, 2024

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.

seanmonstar avatar seanmonstar commented on June 8, 2024

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 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.

โ€”
Reply to this email directly or view it on GitHub
#35 (comment).

from rustless.

andor44 avatar andor44 commented on June 8, 2024

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.

s-panferov avatar s-panferov commented on June 8, 2024

@andor44 not it's ok, please try the new version.

from rustless.

reem avatar reem commented on June 8, 2024

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.

andor44 avatar andor44 commented on June 8, 2024

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.

s-panferov avatar s-panferov commented on June 8, 2024

@reem maybe we can add some more debugging logging (in temp branch of hyper) to check your idea?

from rustless.

andor44 avatar andor44 commented on June 8, 2024

This still happens with hyper 0.3.0

from rustless.

andor44 avatar andor44 commented on June 8, 2024

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.

s-panferov avatar s-panferov commented on June 8, 2024

@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.

andor44 avatar andor44 commented on June 8, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.