-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lazy open first source stream in assemblystream #11980
Conversation
Signed-off-by: Robin Appelman <robin@icewind.nl>
@@ -191,7 +192,7 @@ public function stream_flush() { | |||
* @return bool | |||
*/ | |||
public function stream_eof() { | |||
return $this->pos >= $this->size || $this->currentStream === null; | |||
return $this->pos >= $this->size || ($this->currentNode >= count($this->nodes) && $this->currentNode === null); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you explain this to me in words, because the code and variables make very little sense. The part before the ||
makes sense: if the position is bigger than the size it reached the end of the file. But the second part can never become true - is this really correct?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the second part should never be true, but in cases where the chunking fails the number of bytes read can become lower than expected which would lead to an infinite loop with only the first clause.
This patch is to fix that specific issue, but I figured it's better to leave the extra check there in case a similar issue occurs in the future
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shoudl being the keyword 😉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested and works 👍
@icewind1991 @rullzer I guess we need to backport this, right? |
This prevents a remove first chunk timing out when the pre-hooks take a long time