Skip to content
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

EvLoop::io(): 9 bytes of buffered data lost during stream conversion! #350

Open
PNixx opened this issue May 5, 2021 · 9 comments
Open

Comments

@PNixx
Copy link

PNixx commented May 5, 2021

EvLoop::io(): 9 bytes of buffered data lost during stream conversion!, /home/shared/vendor/amphp/amp/lib/Loop/EvDriver.php:253
$ pecl list
Installed packages, channel pecl.php.net:
=========================================
Package Version State
ev      1.1.2   stable
pq      2.1.8   stable
raphf   2.0.1   stable
@kelunik
Copy link
Member

kelunik commented May 8, 2021

I guess we need more information to reproduce this behavior. Do you have a minimal script to show such behavior?

@PNixx
Copy link
Author

PNixx commented May 8, 2021

No, I use amphp cluster and rabbit with Prefetch count = 30. Ev lib not stable working, I change it to Uv lib.

@kelunik
Copy link
Member

kelunik commented May 8, 2021

This is a generic error when casting PHP streams internally in the extension. Which stream is this warning emitted for? Something in a library or your own code?

https://github.com/php/php-src/blob/01b3fc03c30c6cb85038250bb5640be3a09c6a32/main/streams/cast.c#L326

@PNixx
Copy link
Author

PNixx commented May 8, 2021

In only EvDriver

@kelunik
Copy link
Member

kelunik commented May 8, 2021

I'm aware. But could you add an error handler that logs a stack trace for the warning, please?

@bileslav
Copy link

bileslav commented Jun 19, 2022

@kelunik, I also regularly come across this warning in my application. It's something in the library. How can I help find the cause? How can I catch the stack trace you mentioned?

[19-Jun-2022 15:34:59 Europe/Moscow] PHP Warning:  EvLoop::io(): 13 bytes of buffered data lost during stream conversion! in .../vendor/amphp/amp/lib/Loop/EvDriver.php on line 260

@kelunik
Copy link
Member

kelunik commented Jun 19, 2022

You have to set a global error handler and log the trace there / turn it into an exception.

@bileslav
Copy link

After dropping some dependencies (also dropped ev itself, but a bit later), I stopped getting the warning. Will come back if I run into it again.

@VictorGSoutoXP
Copy link

Esse erro ocorre quando dados foram perdidos durante a conversão do fluxo de dados em um formato que pode ser manipulado pelo PHP. Isso pode acontecer quando o driver de loop utilizado pelo AMP, neste caso o EvDriver, não é compatível com o fluxo de dados sendo usado.
Para resolver esse erro, você pode tentar atualizar a versão do amphp/amp para a versão mais recente, que pode ter corrigido esse problema ou verificar se há atualizações para o EvDriver que solucionem esse problema.
Outra opção é verificar se as extensões PHP ev e raphf estão instaladas e funcionando corretamente. Para isso, você pode executar o comando php -m no terminal para listar todas as extensões PHP instaladas. Se as extensões não estiverem instaladas, você pode instalá-las usando o gerenciador de pacotes PECL:

pecl install ev
pecl install raphf

Certifique-se de que as versões instaladas dessas extensões sejam compatíveis com a versão do PHP que você está usando.
Se as extensões já estiverem instaladas, verifique se elas estão habilitadas no arquivo de configuração do PHP. Você pode verificar a localização do arquivo de configuração do PHP executando o comando php --ini no terminal e verificar se as extensões estão habilitadas na seção ;extension= do arquivo de configuração.
Se nenhuma dessas soluções resolver o problema, você pode tentar usar um driver de loop diferente no AMP, como o LibeventDriver, que é compatível com uma variedade de fluxos de dados e pode ser uma alternativa mais estável ao EvDriver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants