Page MenuHomePhabricator

WMF hhvm-dbg package is broken
Closed, ResolvedPublic


The hhvm-dbg package on is broken. It installs a symbol file which is too small to be plausible (8MB symbols for a 34MB binary), and no symbols appear in gdb.

Event Timeline

tstarling assigned this task to Joe.
tstarling updated the task description. (Show Details)
tstarling changed Security from none to None.
tstarling added a subscriber: tstarling.

The reason for this is that our package is built with the -DCMAKE_BUILD_TYPE=Release, which is supposedly better for production use, but it doesn't have -g in CXXFLAGS.

We do have a patch that uses CMAKE_BUILD_TYPE=RelWithDebInfo that addesses that. I'm going to build the new package today. I am not sure we should keep this in the long run, but for now it's surely important.

The latest packages we create use RelWithDebInfo; however we should consider having two sets of packages built - one with debug symbols, one without them, and test performance between the two. Some performance gap is expected, given the different compiler flags (-O2 vs -O3) and some other differences.

If the performance gap is not that large, I'd go with the full debug info for the time being - else I'll just make it easy to rebuild in one way or the other.

I'll leave this ticket open until we have a definitive answer.

tstarling triaged this task as Unbreak Now! priority.Nov 6 2014, 1:56 AM

There's still no debug symbols on the production servers, as of hhvm-dbg 3.3.0+dfsg1-1+wm2. We have a crash bug we need to fix, but it is difficult to isolate when there are no debug symbols.

The reason why there are not is because I hadn't had the opportunity to experiment on performance; If they are absolutely needed I can go on and build with debug symbols, and assess performance later.

Package 3.3.0+dfsg1-1+wm3.1 has full debug symbols, and the latest versions of the php extensions are built against it. It is now installed just on mw1114 for the weekend. If we don't see performance/stability issues I'll install it everywhere.

the package has been installed on the whole cluster.