WyriHaximus / ReactGuzzle

ReactPHP HttpClient Adapter for Guzzle
MIT License
34 stars 5 forks source link

Notice: Corrupt member variable name in vendor/react/dns/Query/Executor.php on line 102 #13

Open SergeC opened 10 years ago

SergeC commented 10 years ago

Modified "multiple.php" for my needs and got error: screen shot 2014-09-27 at 10 51 03 screen shot 2014-09-27 at 10 53 32

WyriHaximus commented 10 years ago

That is actually a really interesting error. Never encountered this error message before, I'll dig into it and get back to you.

In the mean time, can you test if this occurs on all requests or specific ones?

igorw commented 10 years ago

Whoa, this looks like a buffer overflow or some other sort of bug in PHP itself. Which version of PHP are you running? Can you share a script that reproduces the issue?

igorw commented 10 years ago

Found a possibly related PHP bug https://bugs.php.net/bug.php?id=65967

WyriHaximus commented 10 years ago

What bothers me is that the offending line in the first image seems to hold udp://8.8.8.8:53 and nothing like this: http://3v4l.org/uVXDb

@SergeC can you post your PHP + all it's extensions versions, composer show -i output and a test script that produces this error?

SergeC commented 10 years ago

I'm working this weekends so quickly answering. PHP is 5.5.10. I don't know why udp://8.8.8.8:53 is used. ➜ env composer show -i doctrine/annotations v1.2.1 Docblock Annotations Parser doctrine/cache v1.3.1 Caching library offering an object-oriented API for many cache backends doctrine/collections v1.2 Collections Abstraction library doctrine/common v2.4.2 Common Library for Doctrine projects doctrine/dbal v2.4.2 Database Abstraction Layer doctrine/inflector v1.0 Common String Manipulations with regard to casing and singular/plural rules. doctrine/lexer v1.0 Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers. doctrine/orm v2.4.5 Object-Relational-Mapper for PHP evenement/evenement v2.0.0 Événement is a very simple event dispatching library for PHP guzzle/parser v3.9.2 Interchangeable parsers used by Guzzle guzzlehttp/guzzle 4.2.2 Guzzle is a PHP HTTP client library and framework for building RESTful web service clients guzzlehttp/streams 2.1.0 Provides a simple abstraction over streams of data (Guzzle 4+) react/cache v0.4.0 Async caching. react/dns v0.4.1 Async DNS resolver. react/event-loop v0.4.1 Event loop abstraction layer that libraries can use for evented I/O. react/http-client v0.4.0 Asynchronous HTTP client library. react/promise v2.0.0 A lightweight implementation of CommonJS Promises/A for PHP react/socket v0.4.2 Library for building an evented socket server. react/socket-client v0.4.0 Async connector to open TCP/IP and SSL/TLS based connections. react/stream v0.4.2 Basic readable and writable stream interfaces that support piping. symfony/console v2.5.4 Symfony Console Component wyrihaximus/react-guzzle dev-master e37c6a6 Asyncronous Guzzle adapter powered by react/http-client

Here is modified code used in updateAll function: foreach ($missingInfoItems as $item) { $name = $item->getId(); $this->qqqqq->getClient()->get('item:' . urlencode($name) . '.json')->then(function(Response $response) use ($name) { echo $name . ' completed' . PHP_EOL; }, function($event) use ($name) { echo $name . ' error' . PHP_EOL; }, function(ProgressInterface $event) use ($name) { echo $name . ' progress: ' . number_format($event->getCompletePercentage(), 2) . '%' . PHP_EOL; }); } $this->qqqqq->getLoop()->run();

$missingInfoItems has about 3500 items.

Occurs in all requests, some requests can return HTTP error 429.

SergeC commented 10 years ago

phpinfo