reactphp/stream

SSL Errors

shibdib opened this issue · 11 comments

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

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?

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

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.

gonna test this out and see if it fixes it

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

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?

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

clue commented

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

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

clue commented

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

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 👍