domjudge icon indicating copy to clipboard operation
domjudge copied to clipboard

fix(adminer): php 8 warning of undefined variable

Open cubercsl opened this issue 1 year ago • 2 comments

I am trying to debug domjudge main branch with adminer, but some data is not displayed correctly and I got a 502 error in the nginx log.

image image

... - - [05/Aug/2024:14:20:09 +0000] "GET /jury/adminer?username=&db=domjudge HTTP/2.0" 200 9835 "https://.../jury/adminer?username=&db=" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36"
2024/08/05 14:20:10 [error] 998059#998059: *9783 FastCGI sent in stderr: "PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message: PHP Warning:  Undefined variable $dg in /opt/domjudge/webapp/resources/adminer.php on line 868; PHP message
2024/08/05 14:20:10 [error] 998059#998059: *9783 upstream sent too big header while reading response header from upstream, client: ..., server: ..., request: "GET /jury/adminer?username=&db=domjudge&script=db HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-domjudge.sock:", host: "localhost", referrer: "https://.../jury/adminer?username=&db=domjudge"

Replacing this $dg with $y in webapp/resources/adminer.php can resolve this issue. (This is guessed by comparing the mapping relationship between the source and compressed code variable names.)

See also: https://github.com/vrana/adminer/pull/450

cubercsl avatar Aug 05 '24 16:08 cubercsl

The other suggestion, adding $GLOBALS['sql'] =& $GLOBALS['jush']; to the place where we include adminer, doesn't work? I find that a bit more clean.

nickygerritsen avatar Aug 11 '24 13:08 nickygerritsen

@cubercsl will you implement the other method or should we do this ourselves?

vmcj avatar Aug 25 '24 12:08 vmcj

Hi @cubercsl,

I've merged https://github.com/DOMjudge/domjudge/pull/2798 which fixes this issue in another way.

vmcj avatar Nov 16 '24 10:11 vmcj