reactphp / stream

Event-driven readable and writable streams for non-blocking I/O in ReactPHP.
https://reactphp.org/stream/
MIT License
626 stars 62 forks source link

SSL Errors #57

Closed shibdib closed 7 years ago

shibdib commented 8 years ago

Not sure which subsection this falls

[2016-09-17 00:40:06] Dramiel.ERROR: exception 'ErrorException' with message 'fwrite(): SSL operation failed with code 1. OpenSSL Error messages: error:140D00CF:SSL routines:SSL_write:protocol is shutdown' in /home/Dramiel/mamba/vendor/react/stream/src/Buffer.php:86
Stack trace:
#0 [internal function]: React\Stream\Buffer->handleWrite(Resource id #177, Object(React\EventLoop\StreamSelectLoop))
#1 /home/Dramiel/mamba/vendor/react/event-loop/src/StreamSelectLoop.php(240): call_user_func(Array, Resource id #177, Object(React\EventLoop\StreamSelectLoop))
#2 /home/Dramiel/mamba/vendor/react/event-loop/src/StreamSelectLoop.php(201): React\EventLoop\StreamSelectLoop->waitForStreamActivity(4862327.0988464)
#3 /home/Dramiel/mamba/vendor/team-reflex/discord-php/src/Discord/Discord.php(1223): React\EventLoop\StreamSelectLoop->run()
#4 /home/Dramiel/mamba/Dramiel.php(211): Discord\Discord->run() #5 {main} [] []

This is a Discord bot (https://github.com/shibdib/Dramiel) using DiscordPHP (https://github.com/teamreflex/DiscordPHP).

This is a common problem amongst everyone using the framework.

clue commented 8 years ago

Thanks for reporting! This should have been fixed via #40 and #52 which is part of the v0.4.4 release. Can you check the version you're using and report the output of composer info?

Also, can you provide some steps (possibly a gist) to reproduce this locally?

shibdib commented 8 years ago

running 0.4.4 and still getting these randomly from 3 times an hour to once every 3 hours. No real rhyme or reason to them. Makes it hard/impossible to reproduce reliably on my end. All the errors are identical tho.

clue commented 8 years ago

Thanks for reporting back! Unfortunately this is really hard to reproduce without exact steps, as this hasn't happened on any of my systems so far.

Perhaps you can try replacing these lines? https://github.com/reactphp/stream/blob/master/src/Buffer.php#L97

-        if ($sent === 0 && $this->lastError['number'] > 0) {
+        if ($this->lastError['number'] > 0 && feof($this->stream)) {

Also, a var_dump($sent, $this->lastError, feof($this->stream)) of when this error happens might be useful.

shibdib commented 8 years ago

gonna test this out and see if it fixes it

shibdib commented 8 years ago

still getting the below error, although seems less common. Where would I put that var dump?

[2016-09-23 08:43:48] Dramiel.ERROR: exception 'ErrorException' with message 'fwrite(): SSL operation failed with code 1. OpenSSL Error messages: error:140D00CF:SSL routines:SSL_write:protocol is shutdown' in /home/Dramiel/culture/vendor/react/stream/src/Buffer.php:86
Stack trace:
#0 [internal function]: React\Stream\Buffer->handleWrite(Resource id #173, Object(React\EventLoop\StreamSelectLoop))
#1 /home/Dramiel/culture/vendor/react/event-loop/src/StreamSelectLoop.php(240): call_user_func(Array, Resource id #173, Object(React\EventLoop\StreamSelectLoop))
#2 /home/Dramiel/culture/vendor/react/event-loop/src/StreamSelectLoop.php(201): React\EventLoop\StreamSelectLoop->waitForStreamActivity(5000000)
#3 /home/Dramiel/culture/vendor/team-reflex/discord-php/src/Discord/Discord.php(1225): React\EventLoop\StreamSelectLoop->run()
#4 /home/Dramiel/culture/Dramiel.php(211): Discord\Discord->run() #5 {main} [] []
clue commented 8 years ago

Debugging this without a reproducible test script is kind of hard tbh.

What is the actual error you're seeing? When does this happen? Where is this error reported to? Can you give a full stack trace with line numbers etc.?

I'm not even sure there's really an issue here tbh. The Buffer/Stream will emit an error event when the underlying stream resource reports an error, which appears to be happening in your case, so this looks like expected behavior?

WyriHaximus commented 8 years ago

@shibdib can you create a gist we can use to reproduce this issue?

clue commented 7 years ago

Ping @shibdib, can you update the status here, does the problem persist or did you mange to resolve this in the meantime?

shibdib commented 7 years ago

Persists, seems to definitely just be timing out the connection during long website queries or db queries

clue commented 7 years ago

What is the actual error you're seeing? When does this happen? Where is this error reported to? Can you give a full stack trace with line numbers etc.?

Thanks for reporting back. Any updates on this?

clue commented 7 years ago

What is the actual error you're seeing? When does this happen? Where is this error reported to? Can you give a full stack trace with line numbers etc.?

We have yet to receive an answer on these questions.

Closing this due to a lack of feedback, as we can not reproduce this. Please come back with more details if this problem persists and we can reopen this :+1: