Psalm: php notices 'Uninitialized string offset: 0' in the recent release

Created on 12 May 2020  路  9Comments  路  Source: vimeo/psalm

with vimeo/psalm (3.11.4) we start seeing php warnings which in the end make our CI build-pipeline error.

see

Run vendor/bin/psalm --show-info=false --shepherd --diff --output-format=checkstyle | cs2pr
Scanning files...
Analyzing files...

鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒  60 / 469 (12%)
鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒 120 / 469 (25%)
鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒 180 / 469 (38%)
鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒 240 / 469 (51%)
鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒 300 / 469 (63%)
鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒 360 / 469 (76%)
鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻慐鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒鈻戔枒 420 / 469 (89%)
E鈻戔枒鈻戔枒鈻戔枒鈻戔枒PHP Notice:  Uninitialized string offset: 0 in /home/runner/work/redaxo/redaxo/vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Functions.php on line 69
PHP Notice:  Uninitialized string offset: 0 in /home/runner/work/redaxo/redaxo/vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Functions.php on line 69
PHP Notice:  Uninitialized string offset: 0 in /home/runner/work/redaxo/redaxo/vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Functions.php on line 69

within this github action build: https://github.com/redaxo/redaxo/runs/667802698

All 9 comments

this notices did not show up in similar builds 2 days ago with psalm 3.11.2:

https://github.com/redaxo/redaxo/runs/659427571

I'm unable to reproduce locally with that repo, but I added a proper exception in master to make it possible to nail down the culprit.

Hmm just tried with latest dev-master and cannot repro anymore:

https://github.com/redaxo/redaxo/pull/3612

Maybe its related to result-caching

Well, the exception's there now if this happens in the future

I'm going to close this, as the precise issue (a notice) can no longer occur

@muglug related: why are these php-notices send out on stdout.. those should be printed on stderr, right?

would you accept something like ini_set('display_errors', 'stderr'); ?

This should also now be prevented in the type system by 111303d

Was this page helpful?
0 / 5 - 0 ratings

Related issues

roukmoute picture roukmoute  路  3Comments

ErikBooijCB picture ErikBooijCB  路  4Comments

Pierstoval picture Pierstoval  路  3Comments

ADmad picture ADmad  路  3Comments

albe picture albe  路  3Comments