midgardproject / midgard-php5

PHP5 API for Midgard persistent storage framework
http://www.midgard-project.org/api-docs/midgard/php/ratatoskr/
GNU Lesser General Public License v2.1
9 stars 2 forks source link

Segfault under PHP 5.5 #115

Open flack opened 11 years ago

flack commented 11 years ago

I tried enabling php55 in openpsa travis tests today, unfortunately, it segfaults every time:

https://travis-ci.org/flack/openpsa/jobs/10626779#L1336

I don't have a local php55 installation available yet, so I can't post gdb output or anything like that, but I could try to set up a VM if it is necessary

piotras commented 11 years ago

Can you paste/attache php-midgard compile output? From travis of course. I do not see any in the link you provided.

flack commented 11 years ago

It's there, but collapsed. I tried getting a direct link, but at least on my machine, it doesn't work. Maybe you have more luck:

https://travis-ci.org/flack/openpsa/jobs/10626779#L339

If not, just go to line 339 manually, the compile output should start there (you may need to expand the section with the little triangle thingie)

piotras commented 11 years ago

I tried to compile and run simple script on ubuntu. Works fine. No crashes. I think gdb/valgrind output is recommended.

flack commented 11 years ago

I can try to set up a VM with php55 tonight or so, but if you have a working setup anyways, could you try running the openpsa test suite? It should be very simple, just clone the repo, run composer install (you can ignore the questions about DB setup by just pressing enter and ignoring the error messages), and then run phpunit. The segfault always seems to happen in the asgard copy test, so I would suspect that this triggers some code path in midgard that the others don't

flack commented 11 years ago

I tried reproducing this locally now on a Kubuntu 13.04 VM. There, the segfault doesn't occur, so maybe it happens only on Ubuntu 12.04 (which is what Travis uses).

piotras commented 11 years ago

Travis uses own php builts. I think we can try valgrind directly there. Install valgrind on travis. In tests/travis_midgard.sh add valgrind to apt-get install line. Then wrap test script. Something like this:

valgrind -v --log-file=failure.log phpunit ; cat failure.log
flack commented 11 years ago

It took a bit, but I now have valgrind ouput:

https://travis-ci.org/flack/openpsa/jobs/10859134#L1409

it starts on line 1409, in case the link doesn't take you to the right place

piotras commented 11 years ago

Valgrind output tells nothing :( I suspect PHP threads related issue. It's disabled by default everywhere and enabled on travis.

flack commented 11 years ago

So, is there anything else we could try? For now, i can of course remove php55 from the build matrix, but sooner or later, it would be nice if we could run Travis tests against it

piotras commented 11 years ago

The only one option seems to be compile 5.5 with threads enabled and run tests with valgrind.