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

No output after loading a cachegrind file #156

Open
SagnikGanguly96 opened this issue Mar 20, 2022 · 12 comments
Open

No output after loading a cachegrind file #156

SagnikGanguly96 opened this issue Mar 20, 2022 · 12 comments

Comments

@SagnikGanguly96
Copy link

When I've tried to load cachegrind file, no output is generated in Webgrind. Here's my versions:
Webgrind: 1.9
XDebug: 3.1.3
PHP: 8.1.0
OS: Windows 10 (x64)

Anyway I found the error below when clicking on "Update" button, it sends a XHR request and the response is:
Fatal error: Uncaught ValueError: fread(): Argument #2 ($length) must be greater than 0 in E:\httpd\htdocs\tools\webgrind\library\Reader.php:255 Stack trace: #0 E:\httpd\htdocs\tools\webgrind\library\Reader.php(255): fread() #1 E:\httpd\htdocs\tools\webgrind\library\Reader.php(91): Webgrind_Reader->read() #2 E:\httpd\htdocs\tools\webgrind\library\Reader.php(76): Webgrind_Reader->init() #3 E:\httpd\htdocs\tools\webgrind\library\FileHandler.php(166): Webgrind_Reader->__construct() #4 E:\httpd\htdocs\tools\webgrind\index.php(43): Webgrind_FileHandler->getTraceReader() #5 {main} thrown in E:\httpd\htdocs\tools\webgrind\library\Reader.php on line 255

@ricardoboss
Copy link

Same with the current docker image:

<br />
<b>Warning</b>:  fread(): Length parameter must be greater than 0 in <b>/var/www/html/library/Reader.php</b> on line <b>247</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at /var/www/html/library/Reader.php:247) in <b>/var/www/html/index.php</b> on line <b>243</b><br />
...json stuf...

@alpha0010
Copy link
Collaborator

Could you provide a cachegrind file that that triggers this error?

@SagnikGanguly96
Copy link
Author

Hi @ricardoboss, @alpha0010, I would like to inform you that I've solved the problem. I'm sorry I forgot to inform the same hereafter opening the issue.

@SagnikGanguly96
Copy link
Author

SagnikGanguly96 commented Apr 11, 2022

@ricardoboss, I've manually gone through all the related files of the 'Webgrind' library to find out the exact cause and I found the error I've already mentioned in my first comment then to solve the above problem I found that actually webgrind doesn't extract the compressed XDebug profiles to parse, instead, it parses only raw XDebug profiles. So the problem could be solved by just disabling compression (in my case) which could be done using xdebug.use_compression = false.
And here's my 99-xdebug.ini configured for profiling:

zend_extension = xdebug
;xdebug.mode = develop
xdebug.mode = profile
xdebug.output_dir = "E:/php/common/tmp/XDebug/Profile"
xdebug.profiler_enable = 1
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 1
xdebug.use_compression  = false
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.show_local_vars = 1

@alpha0010
Copy link
Collaborator

Thanks for the update.

Compression support already in master; I forgot to tag a release for it... will do so soon.

@scottchiefbaker
Copy link

scottchiefbaker commented May 14, 2022

I'm new to Webgrind and I just ran in to this issue as well. I thought I was going crazy, as you get no error it just doesn't work.

I can confirm this is fixed on master.

@csandanov
Copy link

Hi, would it be possible to release a tag with the compression support? Thank you!

@danielbeardsley
Copy link

I'm running master and am still getting this error. I'll happily provide a cachegrind file. Send a message to my public email address.

@scottchiefbaker
Copy link

@danielbeardsley don't put the burden on the developers to contact you. Just attach the file here.

@danielbeardsley
Copy link

danielbeardsley commented Jun 12, 2023

Just attach the file here.

TIL you can attach arbitrary files to github comments :-) I prompted for the email cause @alpha0010 didn't have an email address on their account.

Here's one
cachegrind.out.2941563.gz

From the following command:

XDEBUG_PROFILE=1 php -d "xdebug.use_compression=1" -d "xdebug.mode=profile" -d "xdebug.profile=1" -r "function test() {echo 'test';} test();"
 PHP Fatal error:  Uncaught ValueError: fread(): Argument #2 ($length) must be greater than 0 in /mnt/ebs/var/www/ifixit/pub/Misc/webgrind/library/Reader.php:255
 Stack trace:
 #0 /mnt/ebs/var/www/ifixit/pub/Misc/webgrind/library/Reader.php(255): fread(Resource id #594, 0)
 #1 /mnt/ebs/var/www/ifixit/pub/Misc/webgrind/library/Reader.php(91): Webgrind_Reader->read(0)
 #2 /mnt/ebs/var/www/ifixit/pub/Misc/webgrind/library/Reader.php(76): Webgrind_Reader->init()
 #3 /mnt/ebs/var/www/ifixit/pub/Misc/webgrind/library/FileHandler.php(165): Webgrind_Reader->__construct('/tmp/cachegrind...', 'usec')
 #4 /mnt/ebs/var/www/ifixit/pub/Misc/webgrind/index.php(43): Webgrind_FileHandler->getTraceReader('cachegrind.out....', 'usec')
 #5 {main}
   thrown in /mnt/ebs/var/www/ifixit/pub/Misc/webgrind/library/Reader.php on line 255

I get this on the most recent master.

@SagnikGanguly96
Copy link
Author

@danielbeardsley, Turn off the compression by changing the following xdebug.use_compression=1 to xdebug.use_compression=0. It should solve the issue.

@danielbeardsley
Copy link

Turn off the compression

Yes, I'm aware that the bug is in the support of compressed profiles and that not using compression doesn't expose the bug. The point of this issue is that compression support is not finished and seemingly still doesn't work on master.

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

No branches or pull requests

6 participants