Page MenuHomePhabricator

Isolate throughput issue on HHVM API action=parse
Closed, ResolvedPublic

Description

Following ab command is observed to be 3-5x slower in HHVM than Zend:

ab -c100 -n1000 -X localhost:80 'http://en.wikipedia.org/w/api.php?action=parse&format=json&text=blah'

Event Timeline

tstarling claimed this task.
tstarling updated the task description. (Show Details)
tstarling moved this task to In Dev/Progress on the MediaWiki-Core-Team board.
tstarling changed Security from none to None.
tstarling updated the task description. (Show Details)
tstarling subscribed.

Hacked up a temporary xhprof collector, removed blocker.

  • 34% of wall clock time goes to Wikidata's SidebarHookHandlers, which does expensive things (mostly loading the site list) despite there being no sidebar.
  • 28% goes to MWTidy::execExternalTidy
  • 16% goes to MessageCache::transform() due to {{PLURAL}} usage in the limitreport-* messages

That leaves 22%, so it would be about 4x faster if the above three issues were fixed.

When I ran the same test another few times, MessageCache disappeared from the list, but SidebarHookHandlers and MWTidy::execExternalTidy were still very expensive: ~110ms and ~200ms respectively.

Wikidata's contribution should be minimized by these two patches, which the team hopes to ship this week:

https://gerrit.wikimedia.org/r/#/c/174113/
https://gerrit.wikimedia.org/r/#/c/174874/

Change 175940 had a related patch set uploaded (by Tim Starling):
Use HHVM EZC internal tidy

https://gerrit.wikimedia.org/r/175940

Patch-For-Review

Change 175940 merged by jenkins-bot:
Use HHVM EZC internal tidy

https://gerrit.wikimedia.org/r/175940

Change 176383 had a related patch set uploaded (by Ori.livneh):
Use HHVM EZC internal tidy

https://gerrit.wikimedia.org/r/176383

Patch-For-Review

Change 176383 merged by jenkins-bot:
Use HHVM EZC internal tidy

https://gerrit.wikimedia.org/r/176383

Change 176387 had a related patch set uploaded (by Ori.livneh):
Use HHVM EZC internal tidy

https://gerrit.wikimedia.org/r/176387

Patch-For-Review

Change 176387 merged by jenkins-bot:
Use HHVM EZC internal tidy

https://gerrit.wikimedia.org/r/176387

tidy.so still needs to be added to /etc/hhvm/fcgi.ini . Please deploy it with care -- test one server first, and watch the logs.

tidy.so still needs to be added to /etc/hhvm/fcgi.ini . Please deploy it with care -- test one server first, and watch the logs.

@Joe: HHVM needs to be re-packaged, too -- we need https://github.com/facebook/hhvm/pull/4330. It backported cleanly: https://gerrit.wikimedia.org/r/#/c/176864/.

Order of operations for deployment:

  1. Rebuild HHVM package with EZC fix.
  2. Deploy HHVM package.
  3. Merge and deploy change Ia69546e84: hhvm: load tidy.so extension.

(The extension will not be used yet, because I set $wgInternalTidy to false in CommonSettings.php.)

  1. Merge and deploy change I376d064c5: Enable internal tidy if extension is loaded and hostname == mw1114.

If everything looks good, the final step is:

  1. Merge and deploy change I24be75130: Unset $wgTidyInternal, so its default value is used.

This will cause MediaWiki to revert to its default behavior of using the tidy extension whenever it detects that the extension is available.

Ori's plan seems good to me, with the additional passage of testing every step in beta.

so, I performed step 1) and I deployed the package to beta, and a smoke test showed no crashes; so I decided to upload it to the repository.

We'll also have a few newly reimaged servers using the new package for the night, so that is everything is good tomorrow I'll deploy the new package everywhere - so step 2) will be done.

Next step is testing 3 and 4 in beta, then do the same in production. While in beta they can be tested together, the production deploy should be separated.

I pushed this to Beta and we started getting crashes:

1deployment-mediawiki01:/var/tmp/core
2root$ gdb hhvm core
3core.deployment-mediawiki01.hhvm.23709.1417563682
4core.deployment-mediawiki01.hhvm.23961.1417563754
5deployment-mediawiki01:/var/tmp/core
6root$ gdb hhvm core.deployment-mediawiki01.hhvm.23961.1417563754
7GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
8Copyright (C) 2014 Free Software Foundation, Inc.
9License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
10This is free software: you are free to change and redistribute it.
11There is NO WARRANTY, to the extent permitted by law. Type "show copying"
12and "show warranty" for details.
13This GDB was configured as "x86_64-linux-gnu".
14Type "show configuration" for configuration details.
15For bug reporting instructions, please see:
16<http://www.gnu.org/software/gdb/bugs/>.
17Find the GDB manual and other documentation resources online at:
18<http://www.gnu.org/software/gdb/documentation/>.
19For help, type "help".
20Type "apropos word" to search for commands related to "word"...
21Reading symbols from hhvm...Reading symbols from /usr/lib/debug/.build-id/a1/c9fd4453a18fd521be5c520fbcb59deeeb5b51.debug...done.
22done.
23[New LWP 23992]
24[New LWP 23994]
25[New LWP 23972]
26[New LWP 23971]
27[New LWP 23961]
28[New LWP 23980]
29[New LWP 23973]
30[New LWP 23995]
31[Thread debugging using libthread_db enabled]
32Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
33Core was generated by `/usr/bin/hhvm --config /etc/hhvm/fcgi.ini --mode server'.
34Program terminated with signal SIGSEGV, Segmentation fault.
35#0 0x00007f1a92ba628a in ?? () from /usr/lib/x86_64-linux-gnu/hhvm/extensions/current/tidy.so
36gdb> bt
37#0 0x00007f1a92ba628a in ?? () from /usr/lib/x86_64-linux-gnu/hhvm/extensions/current/tidy.so
38#1 0x000000000128911b in HPHP::zend_wrap_func (ar=0x7f1a6dbbf2e0) at /usr/src/hhvm/hphp/runtime/ext_zend_compat/hhvm/zend-wrap-func.cpp:96
39#2 0x0000000000c469c4 in iopNativeImpl (pc=<optimized out>, this=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:6880
40#3 HPHP::ExecutionContext::dispatchImpl<true> (this=0x4) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:7518
41#4 0x0000000000c14689 in HPHP::ExecutionContext::dispatchBB (this=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:7544
42#5 0x0000000000de2082 in HPHP::jit::MCGenerator::enterTC (this=0x7f1a9370a000, start=0x0, data=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/jit/mc-generator.cpp:999
43#6 0x0000000000c123ed in enterTCAtPrologue (start=<optimized out>, ar=<optimized out>, this=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/jit/mc-generator.h:240
44#7 HPHP::ExecutionContext::enterVMAtFunc (this=this@entry=0x0, enterFnAr=enterFnAr@entry=0x0, stk=stk@entry=HPHP::ExecutionContext::Untrimmed) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:1858
45#8 0x0000000000c126be in HPHP::ExecutionContext::enterVM (this=0x0, this@entry=0x7f1a76e69800, ar=0x0, ar@entry=0x7f1a6dbbffc0, stk=HPHP::ExecutionContext::Untrimmed, resumable=0x7f1a76e69800, resumable@entry=0x0, exception=exception@entry=0x0) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:1927
46#9 0x0000000000c1292c in HPHP::ExecutionContext::invokeFunc (this=this@entry=0x7f1a76e69800, retval=retval@entry=0x7f1a6bffb0d0, f=0x7f1a76877100, args_=..., this_=this_@entry=0x0, cls=cls@entry=0x0, varEnv=0x7f1a6d97c030, invName=invName@entry=0x0, flags=flags@entry=HPHP::ExecutionContext::InvokePseudoMain) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:2092
47#10 0x0000000000c12b7a in HPHP::ExecutionContext::invokeUnit (this=0x7f1a76e69800, retval=retval@entry=0x7f1a6bffb0d0, unit=0x7f1a8cbffc40) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:2274
48#11 0x0000000000a98791 in invoke_file_impl (currentDir=0x1c42fd3 "", once=0x1, path=SmartPtr<HPHP::StringData> = {...}, res=Uninit) at /usr/src/hhvm/hphp/runtime/base/builtin-functions.cpp:721
49#12 HPHP::invoke_file (s=SmartPtr<HPHP::StringData> = {...}, once=once@entry=0x1, currentDir=currentDir@entry=0x1c42fd3 "") at /usr/src/hhvm/hphp/runtime/base/builtin-functions.cpp:734
50#13 0x0000000000a9ae2a in HPHP::include_impl_invoke (file=SmartPtr<HPHP::StringData> = {...}, once=once@entry=0x1, currentDir=currentDir@entry=0x1c42fd3 "") at /usr/src/hhvm/hphp/runtime/base/builtin-functions.cpp:745
51#14 0x0000000000a4a619 in HPHP::hphp_invoke (context=context@entry=0x7f1a76e69800, cmd="/srv/mediawiki/docroot/wikipedia.org/w/index.php", func=func@entry=0x0, funcParams=SmartPtr<HPHP::ArrayData>(Null), funcRet=..., reqInitFunc=..., reqInitDoc="/srv/mediawiki/wmf-config/HHVMRequestInit.php", error=@0x7f1a6bffb440: 0x0, errorMsg="Internal Server Error", once=once@entry=0x1, warmupOnly=warmupOnly@entry=0x0, richErrorMsg=richErrorMsg@entry=0x0) at /usr/src/hhvm/hphp/runtime/base/program-functions.cpp:1796
52#15 0x0000000000b23f34 in HPHP::HttpRequestHandler::executePHPRequest (this=this@entry=0x7f1a6e7182a0, transport=transport@entry=0x7f1a50f72298, reqURI=..., sourceRootInfo=..., cachableDynamicContent=cachableDynamicContent@entry=0x0) at /usr/src/hhvm/hphp/runtime/server/http-request-handler.cpp:399
53#16 0x0000000000b25070 in HPHP::HttpRequestHandler::handleRequestImpl (this=0x7f1a6e7182a0, transport=0x7f1a50f72298) at /usr/src/hhvm/hphp/runtime/server/http-request-handler.cpp:292
54#17 0x0000000000b25b99 in HPHP::HttpRequestHandler::handleRequest (this=<optimized out>, transport=<optimized out>) at /usr/src/hhvm/hphp/runtime/server/http-request-handler.cpp:332
55#18 0x0000000000b64c69 in HPHP::ServerWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::FastCGITransportTraits>::doJobImpl (this=0x7f1a8cd8bf00, job=std::shared_ptr (count 3, weak 0) 0x7f1a6c6bbd48, abort=<optimized out>) at /usr/src/hhvm/hphp/runtime/server/server-worker.h:103
56#19 0x0000000000b64e98 in HPHP::ServerWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::FastCGITransportTraits>::doJob (this=<optimized out>, job=...) at /usr/src/hhvm/hphp/runtime/server/server-worker.h:57
57#20 0x0000000000b63e08 in HPHP::JobQueueWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::Server*, true, false, HPHP::JobQueueDropVMStack>::start (this=0x7f1a8cd8bf00) at /usr/src/hhvm/hphp/util/job-queue.h:461
58#21 0x00000000015b1c37 in threadFuncImpl (this=0x7f1a8ce22100) at /usr/src/hhvm/hphp/util/async-func.cpp:131
59#22 HPHP::AsyncFuncImpl::ThreadFunc (obj=0x7f1a8ce22100) at /usr/src/hhvm/hphp/util/async-func.cpp:51
60#23 0x00007f1a9df7c182 in start_thread (arg=0x7f1a6bfff700) at pthread_create.c:312
61#24 0x00007f1a9d488fbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
62gdb>
,
1(gdb) bt
2#0 memcpy (vdest=0x7f3c4920cf2e, vsrc=0x64656d2f7672732f, len=105) at /usr/src/hhvm/hphp/runtime/vm/jit/memcpy-x64.cpp:46
3#1 0x00000000010e074c in memcpy (__len=105, __src=<optimized out>, __dest=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/string3.h:51
4#2 append (len=105, s=<optimized out>, this=0x7f3c433f9e90) at /usr/src/hhvm/hphp/runtime/base/string-buffer.h:173
5#3 append (s=..., this=<optimized out>) at /usr/src/hhvm/hphp/runtime/base/string-buffer.h:167
6#4 HPHP::debug_string_backtrace (skip=skip@entry=false, ignore_args=ignore_args@entry=false, limit=limit@entry=0) at /usr/src/hhvm/hphp/runtime/ext/std/ext_std_errorfunc.cpp:128
7#5 0x0000000000a57fe5 in HPHP::bt_handler (sig=11) at /usr/src/hhvm/hphp/runtime/base/crash-reporter.cpp:82
8#6 <signal handler called>
9#7 HPHP::tvCastToStringInPlace (tv=0x7f3c3f01ffa0) at /usr/src/hhvm/hphp/runtime/base/string-data.h:215
10#8 0x00007f3c5a3a6345 in php_tidy_quick_repair (return_value_ptr=<optimized out>, this_ptr=<optimized out>, return_value_used=<optimized out>, is_file=0 '\000', tsrm_ls=0x7f3c546af7a0, return_value=0x7f3c491eceb0, ht=<optimized out>) at /home/ori/tmp/tidy/debian/build-hhvm/tidy.c:598
11#9 zif_tidy_repair_string (ht=<optimized out>, return_value=0x7f3c491eceb0, return_value_ptr=<optimized out>, this_ptr=<optimized out>, return_value_used=<optimized out>, tsrm_ls=0x7f3c546af7a0) at /home/ori/tmp/tidy/debian/build-hhvm/tidy.c:1337
12#10 0x000000000128911b in HPHP::zend_wrap_func (ar=0x7f3c547bf380) at /usr/src/hhvm/hphp/runtime/ext_zend_compat/hhvm/zend-wrap-func.cpp:96
13#11 0x0000000000c469c4 in iopNativeImpl (pc=<optimized out>, this=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:6880
14#12 HPHP::ExecutionContext::dispatchImpl<true> (this=0x7f3c3f01ffa0) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:7518
15#13 0x0000000000c14689 in HPHP::ExecutionContext::dispatchBB (this=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:7544
16#14 0x0000000000de2082 in HPHP::jit::MCGenerator::enterTC (this=0x7f3c5af0a000, start=0x0, data=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/jit/mc-generator.cpp:999
17#15 0x0000000000c123ed in enterTCAtPrologue (start=<optimized out>, ar=<optimized out>, this=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/jit/mc-generator.h:240
18#16 HPHP::ExecutionContext::enterVMAtFunc (this=this@entry=0x0, enterFnAr=enterFnAr@entry=0x0, stk=stk@entry=HPHP::ExecutionContext::Untrimmed) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:1858
19#17 0x0000000000c126be in HPHP::ExecutionContext::enterVM (this=0x0, this@entry=0x7f3c54693000, ar=0x0, ar@entry=0x7f3c547bffc0, stk=HPHP::ExecutionContext::Untrimmed, resumable=0x7f3c54693000, resumable@entry=0x0, exception=exception@entry=0x0) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:1927
20#18 0x0000000000c1292c in HPHP::ExecutionContext::invokeFunc (this=this@entry=0x7f3c54693000, retval=retval@entry=0x7f3c433fb0d0, f=0x7f3c4ac1d200, args_=..., this_=this_@entry=0x0, cls=cls@entry=0x0, varEnv=0x7f3c3f008270, invName=invName@entry=0x0, flags=flags@entry=HPHP::ExecutionContext::InvokePseudoMain) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:2092
21#19 0x0000000000c12b7a in HPHP::ExecutionContext::invokeUnit (this=0x7f3c54693000, retval=retval@entry=0x7f3c433fb0d0, unit=0x7f3c543fca40) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:2274
22#20 0x0000000000a98791 in invoke_file_impl (currentDir=0x1c42fd3 "", once=true, path=SmartPtr<HPHP::StringData> = {...}, res=Uninit) at /usr/src/hhvm/hphp/runtime/base/builtin-functions.cpp:721
23#21 HPHP::invoke_file (s=SmartPtr<HPHP::StringData> = {...}, once=once@entry=true, currentDir=currentDir@entry=0x1c42fd3 "") at /usr/src/hhvm/hphp/runtime/base/builtin-functions.cpp:734
24#22 0x0000000000a9ae2a in HPHP::include_impl_invoke (file=SmartPtr<HPHP::StringData> = {...}, once=once@entry=true, currentDir=currentDir@entry=0x1c42fd3 "") at /usr/src/hhvm/hphp/runtime/base/builtin-functions.cpp:745
25#23 0x0000000000a4a619 in HPHP::hphp_invoke (context=context@entry=0x7f3c54693000, cmd="/srv/mediawiki/docroot/wikipedia.org/w/index.php", func=func@entry=false, funcParams=SmartPtr<HPHP::ArrayData>(Null), funcRet=..., reqInitFunc=..., reqInitDoc="/srv/mediawiki/wmf-config/HHVMRequestInit.php", error=@0x7f3c433fb440: false, errorMsg="Internal Server Error", once=once@entry=true, warmupOnly=warmupOnly@entry=false, richErrorMsg=richErrorMsg@entry=false) at /usr/src/hhvm/hphp/runtime/base/program-functions.cpp:1796
26#24 0x0000000000b23f34 in HPHP::HttpRequestHandler::executePHPRequest (this=this@entry=0x7f3c546af8e0, transport=transport@entry=0x7f3c54528a98, reqURI=..., sourceRootInfo=..., cachableDynamicContent=cachableDynamicContent@entry=false) at /usr/src/hhvm/hphp/runtime/server/http-request-handler.cpp:399
27#25 0x0000000000b25070 in HPHP::HttpRequestHandler::handleRequestImpl (this=0x7f3c546af8e0, transport=0x7f3c54528a98) at /usr/src/hhvm/hphp/runtime/server/http-request-handler.cpp:292
28#26 0x0000000000b25b99 in HPHP::HttpRequestHandler::handleRequest (this=<optimized out>, transport=<optimized out>) at /usr/src/hhvm/hphp/runtime/server/http-request-handler.cpp:332
29#27 0x0000000000b64c69 in HPHP::ServerWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::FastCGITransportTraits>::doJobImpl (this=0x7f3c54622f40, job=std::shared_ptr (count 3, weak 0) 0x7f3c546d1488, abort=<optimized out>) at /usr/src/hhvm/hphp/runtime/server/server-worker.h:103
30#28 0x0000000000b64e98 in HPHP::ServerWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::FastCGITransportTraits>::doJob (this=<optimized out>, job=...) at /usr/src/hhvm/hphp/runtime/server/server-worker.h:57
31#29 0x0000000000b63e08 in HPHP::JobQueueWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::Server*, true, false, HPHP::JobQueueDropVMStack>::start (this=0x7f3c54622f40) at /usr/src/hhvm/hphp/util/job-queue.h:461
32#30 0x00000000015b1c37 in threadFuncImpl (this=0x7f3c54581f00) at /usr/src/hhvm/hphp/util/async-func.cpp:131
33#31 HPHP::AsyncFuncImpl::ThreadFunc (obj=0x7f3c54581f00) at /usr/src/hhvm/hphp/util/async-func.cpp:51
34#32 0x00007f3c658d7182 in start_thread (arg=0x7f3c433ff700) at pthread_create.c:312
35#33 0x00007f3c64de3fbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
36(gdb) bt full
37#0 memcpy (vdest=0x7f3c4920cf2e, vsrc=0x64656d2f7672732f, len=105) at /usr/src/hhvm/hphp/runtime/vm/jit/memcpy-x64.cpp:46
38 qdest = <optimized out>
39 nBytes = 1
40 nQwordBytes = <optimized out>
41 qsrc = <optimized out>
42 nQwords = <optimized out>
43 src = 0x64656d2f7672732f <error: Cannot access memory at address 0x64656d2f7672732f>
44 dest = 0x7f3c4920cf2e ""
45#1 0x00000000010e074c in memcpy (__len=105, __src=<optimized out>, __dest=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/string3.h:51
46No locals.
47#2 append (len=105, s=<optimized out>, this=0x7f3c433f9e90) at /usr/src/hhvm/hphp/runtime/base/string-buffer.h:173
48No locals.
49#3 append (s=..., this=<optimized out>) at /usr/src/hhvm/hphp/runtime/base/string-buffer.h:167
50No locals.
51#4 HPHP::debug_string_backtrace (skip=skip@entry=false, ignore_args=ignore_args@entry=false, limit=limit@entry=0) at /usr/src/hhvm/hphp/runtime/ext/std/ext_std_errorfunc.cpp:128
52 it = {
53 static initFuncTable = {0xa693e0 <HPHP::ArrayIter::IteratorObjInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67470 <HPHP::ArrayIter::VectorInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67490 <HPHP::ArrayIter::MapInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67530 <HPHP::ArrayIter::SetInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67580 <HPHP::ArrayIter::PairInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67590 <HPHP::ArrayIter::ImmVectorInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa674e0 <HPHP::ArrayIter::ImmMapInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa675b0 <HPHP::ArrayIter::ImmSetInit(HPHP::ArrayIter*, HPHP::ObjectData*)>},
54 {
55 m_data = 0x7f3c49202940,
56 m_obj = 0x7f3c49202940
57 },
58 m_pos = 1,
59 m_version = 0,
60 {
61 {
62 m_itype = HPHP::ArrayIter::TypeUndefined,
63 m_nextHelperIdx = HPHP::ArrayPacked
64 },
65 m_itypeAndNextHelperIdx = 0
66 }
67 }
68 first = false
69 frame = SmartPtr<HPHP::ArrayData> = {
70Python Exception <class 'gdb.error'> There is no member or method named key.:
71 0x7f3c491b0b10 = 4 elements (kind==1)
72 }
73 it = {
74 static initFuncTable = {0xa693e0 <HPHP::ArrayIter::IteratorObjInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67470 <HPHP::ArrayIter::VectorInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67490 <HPHP::ArrayIter::MapInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67530 <HPHP::ArrayIter::SetInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67580 <HPHP::ArrayIter::PairInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa67590 <HPHP::ArrayIter::ImmVectorInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa674e0 <HPHP::ArrayIter::ImmMapInit(HPHP::ArrayIter*, HPHP::ObjectData*)>, 0xa675b0 <HPHP::ArrayIter::ImmSetInit(HPHP::ArrayIter*, HPHP::ObjectData*)>},
75 {
76 m_data = 0x7f3c4920b590,
77 m_obj = 0x7f3c4920b590
78 },
79 m_pos = 0,
80 m_version = 0,
81 {
82 {
83 m_itype = HPHP::ArrayIter::TypeUndefined,
84 m_nextHelperIdx = HPHP::ArrayPacked
85 },
86 m_itypeAndNextHelperIdx = 0
87 }
88 }
89 bt = SmartPtr<HPHP::ArrayData> = {
90 0x7f3c4920b590 = 17 elements (kind==0) = {
91Python Exception <class 'gdb.error'> There is no member or method named key.:
92 0 = Tv: 4 elements (kind==1),
93Python Exception <class 'gdb.error'> There is no member or method named key.:
94 1 = Tv: 6 elements (kind==1),
95Python Exception <class 'gdb.error'> There is no member or method named key.:
96 2 = Tv: 6 elements (kind==1),
97Python Exception <class 'gdb.error'> There is no member or method named key.:
98 3 = Tv: 6 elements (kind==1),
99Python Exception <class 'gdb.error'> There is no member or method named key.:
100 4 = Tv: 6 elements (kind==1),
101Python Exception <class 'gdb.error'> There is no member or method named key.:
102 5 = Tv: 6 elements (kind==1),
103Python Exception <class 'gdb.error'> There is no member or method named key.:
104 6 = Tv: 6 elements (kind==1),
105Python Exception <class 'gdb.error'> There is no member or method named key.:
106 7 = Tv: 6 elements (kind==1),
107Python Exception <class 'gdb.error'> There is no member or method named key.:
108 8 = Tv: 6 elements (kind==1),
109Python Exception <class 'gdb.error'> There is no member or method named key.:
110 9 = Tv: 6 elements (kind==1),
111Python Exception <class 'gdb.error'> There is no member or method named key.:
112 10 = Tv: 6 elements (kind==1),
113Python Exception <class 'gdb.error'> There is no member or method named key.:
114 11 = Tv: 6 elements (kind==1),
115Python Exception <class 'gdb.error'> There is no member or method named key.:
116 12 = Tv: 6 elements (kind==1),
117Python Exception <class 'gdb.error'> There is no member or method named key.:
118 13 = Tv: 6 elements (kind==1),
119Python Exception <class 'gdb.error'> There is no member or method named key.:
120 14 = Tv: 6 elements (kind==1),
121Python Exception <class 'gdb.error'> There is no member or method named key.:
122 15 = Tv: 6 elements (kind==1),
123Python Exception <class 'gdb.error'> There is no member or method named key.:
124 16 = Tv: 4 elements (kind==1)
125 }
126 }
127 buf = {
128 static kDefaultOutputLimit = 2147483646,
129 m_str = 0x7f3c4920c130,
130 m_buffer = 0x7f3c4920c148 "#0 tidy_repair_string(<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><title>test</title></head><body><p><br><br>C"...,
131 m_initialCap = 39,
132 m_maxBytes = 2147483646,
133 m_cap = 5095,
134 m_len = 3558
135 }
136 i = 0
137#5 0x0000000000a57fe5 in HPHP::bt_handler (sig=11) at /usr/src/hhvm/hphp/runtime/base/crash-reporter.cpp:82
138 pid = "17244\000\000\000\002\000\000\000\000"
139 tracefn = 0x7f3c433f9ef8 "/var/log/hhvm/stacktrace.17244.log"
140 fd = 23
141 s_newBlacklist = {0x185ef92 "_ZN4HPHP16StackTraceNoHeap", 0x185efad "_ZN4HPHPL10bt_handlerEi", 0x185efc5 "killpg"}
142 st = {
143 <HPHP::StackTraceBase> = {
144 static Enabled = true,
145 static FunctionBlacklist = 0x2529450 <HPHP::bt_handler(int)::s_newBlacklist>,
146 static FunctionBlacklistCount = 3,
147 static MAXFRAME = 175
148 },
149 members of HPHP::StackTraceNoHeap:
150 m_btpointers = {0x15b6c85 <HPHP::StackTraceNoHeap::StackTraceNoHeap(bool)+53>, 0xa57eda <HPHP::bt_handler(int)+314>, 0x7f3c64d1fc30 <__restore_rt>, 0x98aba8 <HPHP::tvCastToStringInPlace(HPHP::TypedValue*)+392>, 0x7f3c5a3a6345 <zif_tidy_repair_string(int, zval*, zval**, zval*, int, void***)+549>, 0x128911b <HPHP::zend_wrap_func(HPHP::ActRec*)+283>, 0xc469c4 <HPHP::ExecutionContext::dispatchImpl<true>()+47444>, 0xc14689 <HPHP::ExecutionContext::dispatchBB()+9>, 0xde2082 <HPHP::jit::MCGenerator::enterTC(unsigned char*, void*)+354>, 0xc126be <HPHP::ExecutionContext::enterVM(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState, HPHP::Resumable*, HPHP::ObjectData*)+270>, 0xc1292c <HPHP::ExecutionContext::invokeFunc(HPHP::TypedValue*, HPHP::Func const*, HPHP::Variant const&, HPHP::ObjectData*, HPHP::Class*, HPHP::VarEnv*, HPHP::StringData*, HPHP::ExecutionContext::InvokeFlags)+364>, 0xc12b7a <HPHP::ExecutionContext::invokeUnit(HPHP::TypedValue*, HPHP::Unit const*)+106>, 0xa98791 <HPHP::invoke_file(HPHP::String const&, bool, char const*)+81>, 0xa9ae2a <HPHP::include_impl_invoke(HPHP::String const&, bool, char const*)+282>, 0xa4a619 <HPHP::hphp_invoke(HPHP::ExecutionContext*, std::string const&, bool, HPHP::Array const&, HPHP::VRefParamValue const&, std::string const&, std::string const&, bool&, std::string&, bool, bool, bool)+985>, 0xb23f34 <HPHP::HttpRequestHandler::executePHPRequest(HPHP::Transport*, HPHP::RequestURI&, HPHP::SourceRootInfo&, bool)+820>, 0xb25070 <HPHP::HttpRequestHandler::handleRequestImpl(HPHP::Transport*)+1376>, 0xb25b99 <HPHP::HttpRequestHandler::handleRequest(HPHP::Transport*)+9>, 0xb64c69 <HPHP::ServerWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::FastCGITransportTraits>::doJobImpl(std::shared_ptr<HPHP::FastCGIJob>, bool)+409>, 0xb64e98 <HPHP::ServerWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::FastCGITransportTraits>::doJob(std::shared_ptr<HPHP::FastCGIJob>)+56>, 0xb63e08 <HPHP::JobQueueWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::Server*, true, false, HPHP::JobQueueDropVMStack>::start()+424>, 0x15b1c37 <HPHP::AsyncFuncImpl::ThreadFunc(void*)+71>, 0x7f3c658d7182 <start_thread+194>, 0x7f3c64de3fbd <clone+109>, 0x0, 0x7f3c4b072828, 0x7f3c433fa1d4, 0x7f3c66ea4840 <je_arena_bin_info>, 0x5b, 0x7, 0x0, 0x7f3c2920afd0, 0x0, 0x0, 0x7f3c4b0721f8, 0x0, 0x7f3c2920af90, 0x7f3c66c87d79 <je_tcache_alloc_small_hard+25>, 0x28, 0x70, 0x7f3c66ea4840 <je_arena_bin_info>, 0x7f3c66c56575 <malloc+1269>, 0x1, 0x7f3c546db108, 0x7f3c2920b040, 0x7f3c2920af90, 0x7f3c4a01c400, 0x3000000070, 0x28, 0x0, 0x0, 0x7f3c6ab82340 <_pcre_default_tables+256>, 0x7f3c6ab82240 <_pcre_default_tables>, 0x0, 0x10000000a, 0x0, 0x7f3c6ab82580 <_pcre_default_tables+832>, 0x7f3c2920af90, 0x0, 0x0, 0x0, 0x7f3c4b0728b0, 0x7f3c4b0727f0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f3c4b072760, 0x7f3c4b072e58, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x100000000, 0x7f3c4a400000, 0x0, 0x7f3c433fa3d0, 0x7f3c66c5f03e <calloc+1278>, 0x1, 0x6c68e252536f7800, 0x6, 0x7f3c6ab6b4e9 <_pcre_jit_exec+345>, 0x7f3c433f2200, 0x7f3c491fbf08, 0x7f3c491fbf08, 0x7f3c491fcc22, 0x7f3c49202a88, 0x501000006, 0x0, 0xf424000000008, 0x0, 0x7f3c4916b1f0, 0x0, 0xd1a, 0x0, 0x7f3c6ab4ed9b <pcre_exec+3931>, 0x7f3c49202a88, 0x7f3c0000000c, 0x7f3c00000000, 0xa64d00 <folly::AtomicHashArray<HPHP::StringData const*, HPHP::SmartPtr<HPHP::pcre_cache_entry>, HPHP::string_data_hash, HPHP::ahm_string_data_same, std::allocator<char> >::insertInternal<HPHP::SmartPtr<HPHP::pcre_cache_entry> >(HPHP::StringData const*, HPHP::SmartPtr<HPHP::pcre_cache_entry>&&)+880>, 0x7f3c2920afd0, 0x7f3c491fbf08, 0x7f3c49202a88, 0x7f3c5ac08050, 0x7f3c433fa340, 0x7f3c5ac08040, 0x4d430001, 0x7f3c2106fe20, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f3c433fa770, 0x7f3c4916b1f0, 0x7f3c433fa570, 0x7f3c4916b1f0, 0x7f3c433fa4c0, 0xa5d7c1 <HPHP::pcre_get_compiled_regex_cache(HPHP::String const&)+1361>, 0x7f3c5476c008, 0x200, 0x0, 0x7f3c2920af60, 0x0, 0x7f3c547bf4e0, 0x7f3c00000000, 0xbf92da <HPHP::ExecutionContext::doFCall(HPHP::ActRec*, unsigned char const*&)+26>, 0x0, 0x7f3c547bf310, 0x7f3c49202a80, 0x7f3c5c0092c0, 0x0, 0x4916b280, 0x7f3c433fa470, 0x0, 0x7f3c484dc118, 0x7f3c547bf410, 0x7f3c2920afd0, 0xa5cc97 <HPHP::get_subpat_names(HPHP::pcre_cache_entry const*)+103>, 0x0, 0x7f3c5c11d1b0, 0x7f3c433fa450, 0x7f3c4916b1f0, 0x7f3c433fa4c0, 0x0, 0x7f3c4916b208, 0x7f3c547bf410, 0x7f3c49202a88, 0xa5cc97 <HPHP::get_subpat_names(HPHP::pcre_cache_entry const*)+103>, 0x0, 0x0, 0x7f3c433fa4a0, 0x9098db <HPHP::StringData::Make(unsigned long)+251>, 0x7f3c2920afd0, 0x6c68e252536f7800, 0x0, 0x0, 0x7f3c433fa4c0, 0x0, 0x0, 0x0, 0x7f3c433fa6e0, 0xa5f80e <HPHP::php_pcre_replace(HPHP::String const&, HPHP::String const&, HPHP::Variant const&, bool, int, int*)+174>, 0x7f3c49202a88},
151 m_btpointers_cnt = 24
152 }
153 debuggerCount = <optimized out>
154#6 <signal handler called>
155No locals.
156#7 HPHP::tvCastToStringInPlace (tv=0x7f3c3f01ffa0) at /usr/src/hhvm/hphp/runtime/base/string-data.h:215
157No locals.
158#8 0x00007f3c5a3a6345 in php_tidy_quick_repair (return_value_ptr=<optimized out>, this_ptr=<optimized out>, return_value_used=<optimized out>, is_file=0 '\000', tsrm_ls=0x7f3c546af7a0, return_value=0x7f3c491eceb0, ht=<optimized out>) at /home/ori/tmp/tidy/debian/build-hhvm/tidy.c:598
159 arg1_len = 3533
160 data = 0x7f3c491a9378 "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><title>test</title></head><body><p><br><br>Compulsive paying is a m"...
161 enc_len = 4
162 data_len = 3533
163 use_include_path = 0 '\000'
164 arg1 = 0x7f3c491a9378 "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><title>test</title></head><body><p><br><br>Compulsive paying is a m"...
165 enc = 0x7f3c4acbeef8 "utf8"
166 doc = 0x7f3c3f05bd08
167 errbuf = 0x7f3c491ecd78
168 config = 0x7f3c491ecee0
169#9 zif_tidy_repair_string (ht=<optimized out>, return_value=0x7f3c491eceb0, return_value_ptr=<optimized out>, this_ptr=<optimized out>, return_value_used=<optimized out>, tsrm_ls=0x7f3c546af7a0) at /home/ori/tmp/tidy/debian/build-hhvm/tidy.c:1337
170No locals.
171#10 0x000000000128911b in HPHP::zend_wrap_func (ar=0x7f3c547bf380) at /usr/src/hhvm/hphp/runtime/ext_zend_compat/hhvm/zend-wrap-func.cpp:96
172 _ = {
173 <boost::noncopyable_::noncopyable> = {<No data fields>},
174 members of HPHP::VMRegAnchor:
175 m_old = HPHP::CLEAN
176 }
177 return_value_var = Tv: Ref: {
178 <HPHP::TypedValue> = Null,
179 members of HPHP::TypedValueAux:
180 static auxOffset = 12,
181 static auxSize = 4
182}
183 tsrm_ls = 0x7f3c546af7a0
184 native_func = 0x7f3c5a3a6120 <zif_tidy_repair_string(int, zval*, zval**, zval*, int, void***)>
185 this_ptr_var = Tv: Ref: {
186 <HPHP::TypedValue> = Null,
187 members of HPHP::TypedValueAux:
188 static auxOffset = 12,
189 static auxSize = 4
190}
191 return_value_ptr = 0x7f3c433faba0
192#11 0x0000000000c469c4 in iopNativeImpl (pc=<optimized out>, this=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:6880
193 sfp = 0x7f3c5af0a000
194 soff = 989855744
195#12 HPHP::ExecutionContext::dispatchImpl<true> (this=0x7f3c3f01ffa0) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:7518
196 optabDirect = {0xc4776d <HPHP::ExecutionContext::dispatchImpl<true>()+50941>, 0xc3b22f <HPHP::ExecutionContext::dispatchImpl<true>()+447>, 0xc3d1cb <HPHP::ExecutionContext::dispatchImpl<true>()+8539>, 0xc3fdff <HPHP::ExecutionContext::dispatchImpl<true>()+19855>, 0xc3e82d <HPHP::ExecutionContext::dispatchImpl<true>()+14269>, 0xc405e1 <HPHP::ExecutionContext::dispatchImpl<true>()+21873>, 0xc3bcdc <HPHP::ExecutionContext::dispatchImpl<true>()+3180>, 0xc3bd65 <HPHP::ExecutionContext::dispatchImpl<true>()+3317>, 0xc40890 <HPHP::ExecutionContext::dispatchImpl<true>()+22560>, 0xc41722 <HPHP::ExecutionContext::dispatchImpl<true>()+26290>, 0xc3faa8 <HPHP::ExecutionContext::dispatchImpl<true>()+19000>, 0xc3fb24 <HPHP::ExecutionContext::dispatchImpl<true>()+19124>, 0xc411e7 <HPHP::ExecutionContext::dispatchImpl<true>()+24951>, 0xc4125f <HPHP::ExecutionContext::dispatchImpl<true>()+25071>, 0xc3db59 <HPHP::ExecutionContext::dispatchImpl<true>()+10985>, 0xc40af4 <HPHP::ExecutionContext::dispatchImpl<true>()+23172>, 0xc3dbcc <HPHP::ExecutionContext::dispatchImpl<true>()+11100>, 0xc3dc47 <HPHP::ExecutionContext::dispatchImpl<true>()+11223>, 0xc402eb <HPHP::ExecutionContext::dispatchImpl<true>()+21115>, 0xc41b29 <HPHP::ExecutionContext::dispatchImpl<true>()+27321>, 0xc415cd <HPHP::ExecutionContext::dispatchImpl<true>()+25949>, 0xc4166c <HPHP::ExecutionContext::dispatchImpl<true>()+26108>, 0xc3b54b <HPHP::ExecutionContext::dispatchImpl<true>()+1243>, 0xc42072 <HPHP::ExecutionContext::dispatchImpl<true>()+28674>, 0xc4071b <HPHP::ExecutionContext::dispatchImpl<true>()+22187>, 0xc421c8 <HPHP::ExecutionContext::dispatchImpl<true>()+29016>, 0xc3f608 <HPHP::ExecutionContext::dispatchImpl<true>()+17816>, 0xc4185e <HPHP::ExecutionContext::dispatchImpl<true>()+26606>, 0xc3f6af <HPHP::ExecutionContext::dispatchImpl<true>()+17983>, 0xc3f76f <HPHP::ExecutionContext::dispatchImpl<true>()+18175>, 0xc3d4c8 <HPHP::ExecutionContext::dispatchImpl<true>()+9304>, 0xc3d59c <HPHP::ExecutionContext::dispatchImpl<true>()+9516>, 0xc40c75 <HPHP::ExecutionContext::dispatchImpl<true>()+23557>, 0xc42122 <HPHP::ExecutionContext::dispatchImpl<true>()+28850>, 0xc3ff12 <HPHP::ExecutionContext::dispatchImpl<true>()+20130>, 0xc41f0a <HPHP::ExecutionContext::dispatchImpl<true>()+28314>, 0xc41daa <HPHP::ExecutionContext::dispatchImpl<true>()+27962>, 0xc41e49 <HPHP::ExecutionContext::dispatchImpl<true>()+28121>, 0xc3c9a1 <HPHP::ExecutionContext::dispatchImpl<true>()+6449>, 0xc3ca60 <HPHP::ExecutionContext::dispatchImpl<true>()+6640>, 0xc3cb41 <HPHP::ExecutionContext::dispatchImpl<true>()+6865>, 0xc3cc15 <HPHP::ExecutionContext::dispatchImpl<true>()+7077>, 0xc3ccf9 <HPHP::ExecutionContext::dispatchImpl<true>()+7305>, 0xc409ad <HPHP::ExecutionContext::dispatchImpl<true>()+22845>, 0xc3fc48 <HPHP::ExecutionContext::dispatchImpl<true>()+19416>, 0xc41cb2 <HPHP::ExecutionContext::dispatchImpl<true>()+27714>, 0xc3df91 <HPHP::ExecutionContext::dispatchImpl<true>()+12065>, 0xc3e132 <HPHP::ExecutionContext::dispatchImpl<true>()+12482>, 0xc3e1e1 <HPHP::ExecutionContext::dispatchImpl<true>()+12657>, 0xc3e290 <HPHP::ExecutionContext::dispatchImpl<true>()+12832>, 0xc40434 <HPHP::ExecutionContext::dispatchImpl<true>()+21444>, 0xc41fc3 <HPHP::ExecutionContext::dispatchImpl<true>()+28499>, 0xc41396 <HPHP::ExecutionContext::dispatchImpl<true>()+25382>, 0xc41445 <HPHP::ExecutionContext::dispatchImpl<true>()+25557>, 0xc3b3a7 <HPHP::ExecutionContext::dispatchImpl<true>()+823>, 0xc3ed09 <HPHP::ExecutionContext::dispatchImpl<true>()+15513>, 0xc3eacd <HPHP::ExecutionContext::dispatchImpl<true>()+14941>, 0xc3ee7c <HPHP::ExecutionContext::dispatchImpl<true>()+15884>, 0xc3dd6a <HPHP::ExecutionContext::dispatchImpl<true>()+11514>, 0xc3ddeb <HPHP::ExecutionContext::dispatchImpl<true>()+11643>, 0xc3ec40 <HPHP::ExecutionContext::dispatchImpl<true>()+15312>, 0xc3edb8 <HPHP::ExecutionContext::dispatchImpl<true>()+15688>, 0xc3d30c <HPHP::ExecutionContext::dispatchImpl<true>()+8860>, 0xc40370 <HPHP::ExecutionContext::dispatchImpl<true>()+21248>, 0xc3fb87 <HPHP::ExecutionContext::dispatchImpl<true>()+19223>, 0xc40657 <HPHP::ExecutionContext::dispatchImpl<true>()+21991>, 0xc3e95d <HPHP::ExecutionContext::dispatchImpl<true>()+14573>, 0xc3fe63 <HPHP::ExecutionContext::dispatchImpl<true>()+19955>, 0xc3ea1e <HPHP::ExecutionContext::dispatchImpl<true>()+14766>, 0xc3eb91 <HPHP::ExecutionContext::dispatchImpl<true>()+15137>, 0xc3be76 <HPHP::ExecutionContext::dispatchImpl<true>()+3590>, 0xc3bee5 <HPHP::ExecutionContext::dispatchImpl<true>()+3701>, 0xc3c13e <HPHP::ExecutionContext::dispatchImpl<true>()+4302>, 0xc3c1ed <HPHP::ExecutionContext::dispatchImpl<true>()+4477>, 0xc3c003 <HPHP::ExecutionContext::dispatchImpl<true>()+3987>, 0xc3c361 <HPHP::ExecutionContext::dispatchImpl<true>()+4849>, 0xc3c2f2 <HPHP::ExecutionContext::dispatchImpl<true>()+4738>, 0xc3c4d8 <HPHP::ExecutionContext::dispatchImpl<true>()+5224>, 0xc3bf94 <HPHP::ExecutionContext::dispatchImpl<true>()+3876>, 0xc3c547 <HPHP::ExecutionContext::dispatchImpl<true>()+5335>, 0xc3c25c <HPHP::ExecutionContext::dispatchImpl<true>()+4588>, 0xc3c758 <HPHP::ExecutionContext::dispatchImpl<true>()+5864>, 0xc3c072 <HPHP::ExecutionContext::dispatchImpl<true>()+4098>, 0xc3c629 <HPHP::ExecutionContext::dispatchImpl<true>()+5561>, 0xc3c3d0 <HPHP::ExecutionContext::dispatchImpl<true>()+4960>, 0xc3c6d5 <HPHP::ExecutionContext::dispatchImpl<true>()+5733>, 0xc3b8ad <HPHP::ExecutionContext::dispatchImpl<true>()+2109>, 0xc407c2 <HPHP::ExecutionContext::dispatchImpl<true>()+22354>, 0xc3b91a <HPHP::ExecutionContext::dispatchImpl<true>()+2218>, 0xc3b9e8 <HPHP::ExecutionContext::dispatchImpl<true>()+2424>, 0xc3f950 <HPHP::ExecutionContext::dispatchImpl<true>()+18656>, 0xc40de9 <HPHP::ExecutionContext::dispatchImpl<true>()+23929>, 0xc40d1f <HPHP::ExecutionContext::dispatchImpl<true>()+23727>, 0xc40eb1 <HPHP::ExecutionContext::dispatchImpl<true>()+24129>, 0xc3d881 <HPHP::ExecutionContext::dispatchImpl<true>()+10257>, 0xc3d968 <HPHP::ExecutionContext::dispatchImpl<true>()+10488>, 0xc40a34 <HPHP::ExecutionContext::dispatchImpl<true>()+22980>, 0xc40fe9 <HPHP::ExecutionContext::dispatchImpl<true>()+24441>, 0xc3ffd8 <HPHP::ExecutionContext::dispatchImpl<true>()+20328>, 0xc40efc <HPHP::ExecutionContext::dispatchImpl<true>()+24204>, 0xc40090 <HPHP::ExecutionContext::dispatchImpl<true>()+20512>, 0xc40176 <HPHP::ExecutionContext::dispatchImpl<true>()+20742>, 0xc3ce47 <HPHP::ExecutionContext::dispatchImpl<true>()+7639>, 0xc408ff <HPHP::ExecutionContext::dispatchImpl<true>()+22671>, 0xc3cf17 <HPHP::ExecutionContext::dispatchImpl<true>()+7847>, 0xc3cfe3 <HPHP::ExecutionContext::dispatchImpl<true>()+8051>, 0xc3fccf <HPHP::ExecutionContext::dispatchImpl<true>()+19551>, 0xc414f4 <HPHP::ExecutionContext::dispatchImpl<true>()+25732>, 0xc410be <HPHP::ExecutionContext::dispatchImpl<true>()+24654>, 0xc41135 <HPHP::ExecutionContext::dispatchImpl<true>()+24773>, 0xc3e515 <HPHP::ExecutionContext::dispatchImpl<true>()+13477>, 0xc41791 <HPHP::ExecutionContext::dispatchImpl<true>()+26401>, 0xc40b6f <HPHP::ExecutionContext::dispatchImpl<true>()+23295>, 0xc41bb0 <HPHP::ExecutionContext::dispatchImpl<true>()+27456>, 0xc404e3 <HPHP::ExecutionContext::dispatchImpl<true>()+21619>, 0xc41948 <HPHP::ExecutionContext::dispatchImpl<true>()+26840>, 0xc412c2 <HPHP::ExecutionContext::dispatchImpl<true>()+25170>, 0xc41a10 <HPHP::ExecutionContext::dispatchImpl<true>()+27040>, 0xc3b292 <HPHP::ExecutionContext::dispatchImpl<true>()+546>, 0xc470af <HPHP::ExecutionContext::dispatchImpl<true>()+49215>, 0xc44de1 <HPHP::ExecutionContext::dispatchImpl<true>()+40305>, 0xc47701 <HPHP::ExecutionContext::dispatchImpl<true>()+50833>, 0xc3e8a7 <HPHP::ExecutionContext::dispatchImpl<true>()+14391>, 0xc475cb <HPHP::ExecutionContext::dispatchImpl<true>()+50523>, 0xc467a4 <HPHP::ExecutionContext::dispatchImpl<true>()+46900>, 0xc4685c <HPHP::ExecutionContext::dispatchImpl<true>()+47084>, 0xc3d22e <HPHP::ExecutionContext::dispatchImpl<true>()+8638>, 0xc463e0 <HPHP::ExecutionContext::dispatchImpl<true>()+45936>, 0xc462ad <HPHP::ExecutionContext::dispatchImpl<true>()+45629>, 0xc47239 <HPHP::ExecutionContext::dispatchImpl<true>()+49609>, 0xc43324 <HPHP::ExecutionContext::dispatchImpl<true>()+33460>, 0xc46bee <HPHP::ExecutionContext::dispatchImpl<true>()+47998>, 0xc433e7 <HPHP::ExecutionContext::dispatchImpl<true>()+33655>, 0xc43485 <HPHP::ExecutionContext::dispatchImpl<true>()+33813>, 0xc3bddf <HPHP::ExecutionContext::dispatchImpl<true>()+3439>, 0xc4461b <HPHP::ExecutionContext::dispatchImpl<true>()+38315>, 0xc4454e <HPHP::ExecutionContext::dispatchImpl<true>()+38110>, 0xc447d1 <HPHP::ExecutionContext::dispatchImpl<true>()+38753>, 0xc42419 <HPHP::ExecutionContext::dispatchImpl<true>()+29609>, 0xc446fe <HPHP::ExecutionContext::dispatchImpl<true>()+38542>, 0xc424f3 <HPHP::ExecutionContext::dispatchImpl<true>()+29827>, 0xc4263a <HPHP::ExecutionContext::dispatchImpl<true>()+30154>, 0xc3dcc2 <HPHP::ExecutionContext::dispatchImpl<true>()+11346>, 0xc46a78 <HPHP::ExecutionContext::dispatchImpl<true>()+47624>, 0xc45f8d <HPHP::ExecutionContext::dispatchImpl<true>()+44829>, 0xc46064 <HPHP::ExecutionContext::dispatchImpl<true>()+45044>, 0xc443d8 <HPHP::ExecutionContext::dispatchImpl<true>()+37736>, 0xc4449e <HPHP::ExecutionContext::dispatchImpl<true>()+37934>, 0xc46610 <HPHP::ExecutionContext::dispatchImpl<true>()+46496>, 0xc46eb0 <HPHP::ExecutionContext::dispatchImpl<true>()+48704>, 0xc3b5fb <HPHP::ExecutionContext::dispatchImpl<true>()+1419>, 0xc45220 <HPHP::ExecutionContext::dispatchImpl<true>()+41392>, 0xc3b6c3 <HPHP::ExecutionContext::dispatchImpl<true>()+1619>, 0xc3b7b6 <HPHP::ExecutionContext::dispatchImpl<true>()+1862>, 0xc3f87f <HPHP::ExecutionContext::dispatchImpl<true>()+18447>, 0xc453d1 <HPHP::ExecutionContext::dispatchImpl<true>()+41825>, 0xc452e5 <HPHP::ExecutionContext::dispatchImpl<true>()+41589>, 0xc45490 <HPHP::ExecutionContext::dispatchImpl<true>()+42016>, 0xc3d66c <HPHP::ExecutionContext::dispatchImpl<true>()+9724>, 0xc3d789 <HPHP::ExecutionContext::dispatchImpl<true>()+10009>, 0xc43dad <HPHP::ExecutionContext::dispatchImpl<true>()+36157>, 0xc43ef0 <HPHP::ExecutionContext::dispatchImpl<true>()+36480>, 0xc43ad0 <HPHP::ExecutionContext::dispatchImpl<true>()+35424>, 0xc43c3d <HPHP::ExecutionContext::dispatchImpl<true>()+35789>, 0xc456fc <HPHP::ExecutionContext::dispatchImpl<true>()+42636>, 0xc45b88 <HPHP::ExecutionContext::dispatchImpl<true>()+43800>, 0xc3cd87 <HPHP::ExecutionContext::dispatchImpl<true>()+7447>, 0xc4563c <HPHP::ExecutionContext::dispatchImpl<true>()+42444>, 0xc4557c <HPHP::ExecutionContext::dispatchImpl<true>()+42252>, 0xc45f0a <HPHP::ExecutionContext::dispatchImpl<true>()+44698>, 0xc42e23 <HPHP::ExecutionContext::dispatchImpl<true>()+32179>, 0xc42f00 <HPHP::ExecutionContext::dispatchImpl<true>()+32400>, 0xc45c0b <HPHP::ExecutionContext::dispatchImpl<true>()+43931>, 0xc45d59 <HPHP::ExecutionContext::dispatchImpl<true>()+44265>, 0xc3e33f <HPHP::ExecutionContext::dispatchImpl<true>()+13007>, 0xc45ea0 <HPHP::ExecutionContext::dispatchImpl<true>()+44592>, 0xc4589f <HPHP::ExecutionContext::dispatchImpl<true>()+43055>, 0xc459d0 <HPHP::ExecutionContext::dispatchImpl<true>()+43360>, 0xc44a08 <HPHP::ExecutionContext::dispatchImpl<true>()+39320>, 0xc45b08 <HPHP::ExecutionContext::dispatchImpl<true>()+43672>, 0xc44b08 <HPHP::ExecutionContext::dispatchImpl<true>()+39576>, 0xc44c49 <HPHP::ExecutionContext::dispatchImpl<true>()+39897>, 0xc3b456 <HPHP::ExecutionContext::dispatchImpl<true>()+998>, 0xc3f428 <HPHP::ExecutionContext::dispatchImpl<true>()+17336>, 0xc3f320 <HPHP::ExecutionContext::dispatchImpl<true>()+17072>, 0xc3f518 <HPHP::ExecutionContext::dispatchImpl<true>()+17576>, 0xc3eedd <HPHP::ExecutionContext::dispatchImpl<true>()+15981>, 0xc3eff8 <HPHP::ExecutionContext::dispatchImpl<true>()+16264>, 0xc3f130 <HPHP::ExecutionContext::dispatchImpl<true>()+16576>, 0xc3f248 <HPHP::ExecutionContext::dispatchImpl<true>()+16856>, 0xc3d3d5 <HPHP::ExecutionContext::dispatchImpl<true>()+9061>, 0xc43ffa <HPHP::ExecutionContext::dispatchImpl<true>()+36746>, 0xc438b6 <HPHP::ExecutionContext::dispatchImpl<true>()+34886>, 0xc439b0 <HPHP::ExecutionContext::dispatchImpl<true>()+35136>, 0xc43523 <HPHP::ExecutionContext::dispatchImpl<true>()+33971>, 0xc43620 <HPHP::ExecutionContext::dispatchImpl<true>()+34224>, 0xc43778 <HPHP::ExecutionContext::dispatchImpl<true>()+34568>, 0xc43817 <HPHP::ExecutionContext::dispatchImpl<true>()+34727>, 0xc3c827 <HPHP::ExecutionContext::dispatchImpl<true>()+6071>, 0xc3c8c6 <HPHP::ExecutionContext::dispatchImpl<true>()+6230>...}
197 optabDbg = {0xc4773c <HPHP::ExecutionContext::dispatchImpl<true>()+50892>, 0xc3b207 <HPHP::ExecutionContext::dispatchImpl<true>()+407>, 0xc3d1a3 <HPHP::ExecutionContext::dispatchImpl<true>()+8499>, 0xc3fdd7 <HPHP::ExecutionContext::dispatchImpl<true>()+19815>, 0xc3e805 <HPHP::ExecutionContext::dispatchImpl<true>()+14229>, 0xc405b9 <HPHP::ExecutionContext::dispatchImpl<true>()+21833>, 0xc3bcb4 <HPHP::ExecutionContext::dispatchImpl<true>()+3140>, 0xc3bd3d <HPHP::ExecutionContext::dispatchImpl<true>()+3277>, 0xc40868 <HPHP::ExecutionContext::dispatchImpl<true>()+22520>, 0xc416fa <HPHP::ExecutionContext::dispatchImpl<true>()+26250>, 0xc3fa80 <HPHP::ExecutionContext::dispatchImpl<true>()+18960>, 0xc3fafc <HPHP::ExecutionContext::dispatchImpl<true>()+19084>, 0xc411bf <HPHP::ExecutionContext::dispatchImpl<true>()+24911>, 0xc41237 <HPHP::ExecutionContext::dispatchImpl<true>()+25031>, 0xc3db31 <HPHP::ExecutionContext::dispatchImpl<true>()+10945>, 0xc40acc <HPHP::ExecutionContext::dispatchImpl<true>()+23132>, 0xc3dba4 <HPHP::ExecutionContext::dispatchImpl<true>()+11060>, 0xc3dc1f <HPHP::ExecutionContext::dispatchImpl<true>()+11183>, 0xc402c3 <HPHP::ExecutionContext::dispatchImpl<true>()+21075>, 0xc41b01 <HPHP::ExecutionContext::dispatchImpl<true>()+27281>, 0xc415a5 <HPHP::ExecutionContext::dispatchImpl<true>()+25909>, 0xc41644 <HPHP::ExecutionContext::dispatchImpl<true>()+26068>, 0xc3b523 <HPHP::ExecutionContext::dispatchImpl<true>()+1203>, 0xc4204a <HPHP::ExecutionContext::dispatchImpl<true>()+28634>, 0xc406f3 <HPHP::ExecutionContext::dispatchImpl<true>()+22147>, 0xc421a0 <HPHP::ExecutionContext::dispatchImpl<true>()+28976>, 0xc3f5e0 <HPHP::ExecutionContext::dispatchImpl<true>()+17776>, 0xc41836 <HPHP::ExecutionContext::dispatchImpl<true>()+26566>, 0xc3f687 <HPHP::ExecutionContext::dispatchImpl<true>()+17943>, 0xc3f747 <HPHP::ExecutionContext::dispatchImpl<true>()+18135>, 0xc3d4a0 <HPHP::ExecutionContext::dispatchImpl<true>()+9264>, 0xc3d574 <HPHP::ExecutionContext::dispatchImpl<true>()+9476>, 0xc40c4d <HPHP::ExecutionContext::dispatchImpl<true>()+23517>, 0xc420fa <HPHP::ExecutionContext::dispatchImpl<true>()+28810>, 0xc3feea <HPHP::ExecutionContext::dispatchImpl<true>()+20090>, 0xc41ee2 <HPHP::ExecutionContext::dispatchImpl<true>()+28274>, 0xc41d82 <HPHP::ExecutionContext::dispatchImpl<true>()+27922>, 0xc41e21 <HPHP::ExecutionContext::dispatchImpl<true>()+28081>, 0xc3c979 <HPHP::ExecutionContext::dispatchImpl<true>()+6409>, 0xc3ca38 <HPHP::ExecutionContext::dispatchImpl<true>()+6600>, 0xc3cb19 <HPHP::ExecutionContext::dispatchImpl<true>()+6825>, 0xc3cbed <HPHP::ExecutionContext::dispatchImpl<true>()+7037>, 0xc3ccd1 <HPHP::ExecutionContext::dispatchImpl<true>()+7265>, 0xc40985 <HPHP::ExecutionContext::dispatchImpl<true>()+22805>, 0xc3fc20 <HPHP::ExecutionContext::dispatchImpl<true>()+19376>, 0xc41c8a <HPHP::ExecutionContext::dispatchImpl<true>()+27674>, 0xc3df69 <HPHP::ExecutionContext::dispatchImpl<true>()+12025>, 0xc3e10a <HPHP::ExecutionContext::dispatchImpl<true>()+12442>, 0xc3e1b9 <HPHP::ExecutionContext::dispatchImpl<true>()+12617>, 0xc3e268 <HPHP::ExecutionContext::dispatchImpl<true>()+12792>, 0xc4040c <HPHP::ExecutionContext::dispatchImpl<true>()+21404>, 0xc41f9b <HPHP::ExecutionContext::dispatchImpl<true>()+28459>, 0xc4136e <HPHP::ExecutionContext::dispatchImpl<true>()+25342>, 0xc4141d <HPHP::ExecutionContext::dispatchImpl<true>()+25517>, 0xc3b37f <HPHP::ExecutionContext::dispatchImpl<true>()+783>, 0xc3ece1 <HPHP::ExecutionContext::dispatchImpl<true>()+15473>, 0xc3eaa5 <HPHP::ExecutionContext::dispatchImpl<true>()+14901>, 0xc3ee54 <HPHP::ExecutionContext::dispatchImpl<true>()+15844>, 0xc3dd42 <HPHP::ExecutionContext::dispatchImpl<true>()+11474>, 0xc3ddc3 <HPHP::ExecutionContext::dispatchImpl<true>()+11603>, 0xc3ec18 <HPHP::ExecutionContext::dispatchImpl<true>()+15272>, 0xc3ed90 <HPHP::ExecutionContext::dispatchImpl<true>()+15648>, 0xc3d2e4 <HPHP::ExecutionContext::dispatchImpl<true>()+8820>, 0xc40348 <HPHP::ExecutionContext::dispatchImpl<true>()+21208>, 0xc3fb5f <HPHP::ExecutionContext::dispatchImpl<true>()+19183>, 0xc4062f <HPHP::ExecutionContext::dispatchImpl<true>()+21951>, 0xc3e935 <HPHP::ExecutionContext::dispatchImpl<true>()+14533>, 0xc3fe3b <HPHP::ExecutionContext::dispatchImpl<true>()+19915>, 0xc3e9f6 <HPHP::ExecutionContext::dispatchImpl<true>()+14726>, 0xc3eb69 <HPHP::ExecutionContext::dispatchImpl<true>()+15097>, 0xc3be4e <HPHP::ExecutionContext::dispatchImpl<true>()+3550>, 0xc3bebd <HPHP::ExecutionContext::dispatchImpl<true>()+3661>, 0xc3c116 <HPHP::ExecutionContext::dispatchImpl<true>()+4262>, 0xc3c1c5 <HPHP::ExecutionContext::dispatchImpl<true>()+4437>, 0xc3bfdb <HPHP::ExecutionContext::dispatchImpl<true>()+3947>, 0xc3c339 <HPHP::ExecutionContext::dispatchImpl<true>()+4809>, 0xc3c2ca <HPHP::ExecutionContext::dispatchImpl<true>()+4698>, 0xc3c4b0 <HPHP::ExecutionContext::dispatchImpl<true>()+5184>, 0xc3bf6c <HPHP::ExecutionContext::dispatchImpl<true>()+3836>, 0xc3c51f <HPHP::ExecutionContext::dispatchImpl<true>()+5295>, 0xc3c234 <HPHP::ExecutionContext::dispatchImpl<true>()+4548>, 0xc3c730 <HPHP::ExecutionContext::dispatchImpl<true>()+5824>, 0xc3c04a <HPHP::ExecutionContext::dispatchImpl<true>()+4058>, 0xc3c601 <HPHP::ExecutionContext::dispatchImpl<true>()+5521>, 0xc3c3a8 <HPHP::ExecutionContext::dispatchImpl<true>()+4920>, 0xc3c6ad <HPHP::ExecutionContext::dispatchImpl<true>()+5693>, 0xc3b885 <HPHP::ExecutionContext::dispatchImpl<true>()+2069>, 0xc4079a <HPHP::ExecutionContext::dispatchImpl<true>()+22314>, 0xc3b8f2 <HPHP::ExecutionContext::dispatchImpl<true>()+2178>, 0xc3b9c0 <HPHP::ExecutionContext::dispatchImpl<true>()+2384>, 0xc3f928 <HPHP::ExecutionContext::dispatchImpl<true>()+18616>, 0xc40dc1 <HPHP::ExecutionContext::dispatchImpl<true>()+23889>, 0xc40cf7 <HPHP::ExecutionContext::dispatchImpl<true>()+23687>, 0xc40e89 <HPHP::ExecutionContext::dispatchImpl<true>()+24089>, 0xc3d859 <HPHP::ExecutionContext::dispatchImpl<true>()+10217>, 0xc3d940 <HPHP::ExecutionContext::dispatchImpl<true>()+10448>, 0xc40a0c <HPHP::ExecutionContext::dispatchImpl<true>()+22940>, 0xc40fc1 <HPHP::ExecutionContext::dispatchImpl<true>()+24401>, 0xc3ffb0 <HPHP::ExecutionContext::dispatchImpl<true>()+20288>, 0xc40ed4 <HPHP::ExecutionContext::dispatchImpl<true>()+24164>, 0xc40068 <HPHP::ExecutionContext::dispatchImpl<true>()+20472>, 0xc4014e <HPHP::ExecutionContext::dispatchImpl<true>()+20702>, 0xc3ce1f <HPHP::ExecutionContext::dispatchImpl<true>()+7599>, 0xc408d7 <HPHP::ExecutionContext::dispatchImpl<true>()+22631>, 0xc3ceef <HPHP::ExecutionContext::dispatchImpl<true>()+7807>, 0xc3cfbb <HPHP::ExecutionContext::dispatchImpl<true>()+8011>, 0xc3fca7 <HPHP::ExecutionContext::dispatchImpl<true>()+19511>, 0xc414cc <HPHP::ExecutionContext::dispatchImpl<true>()+25692>, 0xc41096 <HPHP::ExecutionContext::dispatchImpl<true>()+24614>, 0xc4110d <HPHP::ExecutionContext::dispatchImpl<true>()+24733>, 0xc3e4ed <HPHP::ExecutionContext::dispatchImpl<true>()+13437>, 0xc41769 <HPHP::ExecutionContext::dispatchImpl<true>()+26361>, 0xc40b47 <HPHP::ExecutionContext::dispatchImpl<true>()+23255>, 0xc41b88 <HPHP::ExecutionContext::dispatchImpl<true>()+27416>, 0xc404bb <HPHP::ExecutionContext::dispatchImpl<true>()+21579>, 0xc41920 <HPHP::ExecutionContext::dispatchImpl<true>()+26800>, 0xc4129a <HPHP::ExecutionContext::dispatchImpl<true>()+25130>, 0xc419e8 <HPHP::ExecutionContext::dispatchImpl<true>()+27000>, 0xc3b26a <HPHP::ExecutionContext::dispatchImpl<true>()+506>, 0xc47087 <HPHP::ExecutionContext::dispatchImpl<true>()+49175>, 0xc44db9 <HPHP::ExecutionContext::dispatchImpl<true>()+40265>, 0xc476d9 <HPHP::ExecutionContext::dispatchImpl<true>()+50793>, 0xc3e87f <HPHP::ExecutionContext::dispatchImpl<true>()+14351>, 0xc475a3 <HPHP::ExecutionContext::dispatchImpl<true>()+50483>, 0xc4677c <HPHP::ExecutionContext::dispatchImpl<true>()+46860>, 0xc46834 <HPHP::ExecutionContext::dispatchImpl<true>()+47044>, 0xc3d206 <HPHP::ExecutionContext::dispatchImpl<true>()+8598>, 0xc463b8 <HPHP::ExecutionContext::dispatchImpl<true>()+45896>, 0xc46285 <HPHP::ExecutionContext::dispatchImpl<true>()+45589>, 0xc47211 <HPHP::ExecutionContext::dispatchImpl<true>()+49569>, 0xc432fc <HPHP::ExecutionContext::dispatchImpl<true>()+33420>, 0xc46bc6 <HPHP::ExecutionContext::dispatchImpl<true>()+47958>, 0xc433bf <HPHP::ExecutionContext::dispatchImpl<true>()+33615>, 0xc4345d <HPHP::ExecutionContext::dispatchImpl<true>()+33773>, 0xc3bdb7 <HPHP::ExecutionContext::dispatchImpl<true>()+3399>, 0xc445f3 <HPHP::ExecutionContext::dispatchImpl<true>()+38275>, 0xc44526 <HPHP::ExecutionContext::dispatchImpl<true>()+38070>, 0xc447a9 <HPHP::ExecutionContext::dispatchImpl<true>()+38713>, 0xc423f1 <HPHP::ExecutionContext::dispatchImpl<true>()+29569>, 0xc446d6 <HPHP::ExecutionContext::dispatchImpl<true>()+38502>, 0xc424cb <HPHP::ExecutionContext::dispatchImpl<true>()+29787>, 0xc42612 <HPHP::ExecutionContext::dispatchImpl<true>()+30114>, 0xc3dc9a <HPHP::ExecutionContext::dispatchImpl<true>()+11306>, 0xc46a50 <HPHP::ExecutionContext::dispatchImpl<true>()+47584>, 0xc45f65 <HPHP::ExecutionContext::dispatchImpl<true>()+44789>, 0xc4603c <HPHP::ExecutionContext::dispatchImpl<true>()+45004>, 0xc443b0 <HPHP::ExecutionContext::dispatchImpl<true>()+37696>, 0xc44476 <HPHP::ExecutionContext::dispatchImpl<true>()+37894>, 0xc465e8 <HPHP::ExecutionContext::dispatchImpl<true>()+46456>, 0xc46e88 <HPHP::ExecutionContext::dispatchImpl<true>()+48664>, 0xc3b5d3 <HPHP::ExecutionContext::dispatchImpl<true>()+1379>, 0xc451f8 <HPHP::ExecutionContext::dispatchImpl<true>()+41352>, 0xc3b69b <HPHP::ExecutionContext::dispatchImpl<true>()+1579>, 0xc3b78e <HPHP::ExecutionContext::dispatchImpl<true>()+1822>, 0xc3f857 <HPHP::ExecutionContext::dispatchImpl<true>()+18407>, 0xc453a9 <HPHP::ExecutionContext::dispatchImpl<true>()+41785>, 0xc452bd <HPHP::ExecutionContext::dispatchImpl<true>()+41549>, 0xc45468 <HPHP::ExecutionContext::dispatchImpl<true>()+41976>, 0xc3d644 <HPHP::ExecutionContext::dispatchImpl<true>()+9684>, 0xc3d761 <HPHP::ExecutionContext::dispatchImpl<true>()+9969>, 0xc43d85 <HPHP::ExecutionContext::dispatchImpl<true>()+36117>, 0xc43ec8 <HPHP::ExecutionContext::dispatchImpl<true>()+36440>, 0xc43aa8 <HPHP::ExecutionContext::dispatchImpl<true>()+35384>, 0xc43c15 <HPHP::ExecutionContext::dispatchImpl<true>()+35749>, 0xc456d4 <HPHP::ExecutionContext::dispatchImpl<true>()+42596>, 0xc45b60 <HPHP::ExecutionContext::dispatchImpl<true>()+43760>, 0xc3cd5f <HPHP::ExecutionContext::dispatchImpl<true>()+7407>, 0xc45614 <HPHP::ExecutionContext::dispatchImpl<true>()+42404>, 0xc45554 <HPHP::ExecutionContext::dispatchImpl<true>()+42212>, 0xc45ee2 <HPHP::ExecutionContext::dispatchImpl<true>()+44658>, 0xc42dfb <HPHP::ExecutionContext::dispatchImpl<true>()+32139>, 0xc42ed8 <HPHP::ExecutionContext::dispatchImpl<true>()+32360>, 0xc45be3 <HPHP::ExecutionContext::dispatchImpl<true>()+43891>, 0xc45d31 <HPHP::ExecutionContext::dispatchImpl<true>()+44225>, 0xc3e317 <HPHP::ExecutionContext::dispatchImpl<true>()+12967>, 0xc45e78 <HPHP::ExecutionContext::dispatchImpl<true>()+44552>, 0xc45877 <HPHP::ExecutionContext::dispatchImpl<true>()+43015>, 0xc459a8 <HPHP::ExecutionContext::dispatchImpl<true>()+43320>, 0xc449e0 <HPHP::ExecutionContext::dispatchImpl<true>()+39280>, 0xc45ae0 <HPHP::ExecutionContext::dispatchImpl<true>()+43632>, 0xc44ae0 <HPHP::ExecutionContext::dispatchImpl<true>()+39536>, 0xc44c21 <HPHP::ExecutionContext::dispatchImpl<true>()+39857>, 0xc3b42e <HPHP::ExecutionContext::dispatchImpl<true>()+958>, 0xc3f400 <HPHP::ExecutionContext::dispatchImpl<true>()+17296>, 0xc3f2f8 <HPHP::ExecutionContext::dispatchImpl<true>()+17032>, 0xc3f4f0 <HPHP::ExecutionContext::dispatchImpl<true>()+17536>, 0xc3eeb5 <HPHP::ExecutionContext::dispatchImpl<true>()+15941>, 0xc3efd0 <HPHP::ExecutionContext::dispatchImpl<true>()+16224>, 0xc3f108 <HPHP::ExecutionContext::dispatchImpl<true>()+16536>, 0xc3f220 <HPHP::ExecutionContext::dispatchImpl<true>()+16816>, 0xc3d3ad <HPHP::ExecutionContext::dispatchImpl<true>()+9021>, 0xc43fd2 <HPHP::ExecutionContext::dispatchImpl<true>()+36706>, 0xc4388e <HPHP::ExecutionContext::dispatchImpl<true>()+34846>, 0xc43988 <HPHP::ExecutionContext::dispatchImpl<true>()+35096>, 0xc434fb <HPHP::ExecutionContext::dispatchImpl<true>()+33931>, 0xc435f8 <HPHP::ExecutionContext::dispatchImpl<true>()+34184>, 0xc43750 <HPHP::ExecutionContext::dispatchImpl<true>()+34528>, 0xc437ef <HPHP::ExecutionContext::dispatchImpl<true>()+34687>, 0xc3c7ff <HPHP::ExecutionContext::dispatchImpl<true>()+6031>, 0xc3c89e <HPHP::ExecutionContext::dispatchImpl<true>()+6190>...}
198 optabCover = {0xc47748 <HPHP::ExecutionContext::dispatchImpl<true>()+50904>, 0xc3b213 <HPHP::ExecutionContext::dispatchImpl<true>()+419>, 0xc3d1af <HPHP::ExecutionContext::dispatchImpl<true>()+8511>, 0xc3fde3 <HPHP::ExecutionContext::dispatchImpl<true>()+19827>, 0xc3e811 <HPHP::ExecutionContext::dispatchImpl<true>()+14241>, 0xc405c5 <HPHP::ExecutionContext::dispatchImpl<true>()+21845>, 0xc3bcc0 <HPHP::ExecutionContext::dispatchImpl<true>()+3152>, 0xc3bd49 <HPHP::ExecutionContext::dispatchImpl<true>()+3289>, 0xc40874 <HPHP::ExecutionContext::dispatchImpl<true>()+22532>, 0xc41706 <HPHP::ExecutionContext::dispatchImpl<true>()+26262>, 0xc3fa8c <HPHP::ExecutionContext::dispatchImpl<true>()+18972>, 0xc3fb08 <HPHP::ExecutionContext::dispatchImpl<true>()+19096>, 0xc411cb <HPHP::ExecutionContext::dispatchImpl<true>()+24923>, 0xc41243 <HPHP::ExecutionContext::dispatchImpl<true>()+25043>, 0xc3db3d <HPHP::ExecutionContext::dispatchImpl<true>()+10957>, 0xc40ad8 <HPHP::ExecutionContext::dispatchImpl<true>()+23144>, 0xc3dbb0 <HPHP::ExecutionContext::dispatchImpl<true>()+11072>, 0xc3dc2b <HPHP::ExecutionContext::dispatchImpl<true>()+11195>, 0xc402cf <HPHP::ExecutionContext::dispatchImpl<true>()+21087>, 0xc41b0d <HPHP::ExecutionContext::dispatchImpl<true>()+27293>, 0xc415b1 <HPHP::ExecutionContext::dispatchImpl<true>()+25921>, 0xc41650 <HPHP::ExecutionContext::dispatchImpl<true>()+26080>, 0xc3b52f <HPHP::ExecutionContext::dispatchImpl<true>()+1215>, 0xc42056 <HPHP::ExecutionContext::dispatchImpl<true>()+28646>, 0xc406ff <HPHP::ExecutionContext::dispatchImpl<true>()+22159>, 0xc421ac <HPHP::ExecutionContext::dispatchImpl<true>()+28988>, 0xc3f5ec <HPHP::ExecutionContext::dispatchImpl<true>()+17788>, 0xc41842 <HPHP::ExecutionContext::dispatchImpl<true>()+26578>, 0xc3f693 <HPHP::ExecutionContext::dispatchImpl<true>()+17955>, 0xc3f753 <HPHP::ExecutionContext::dispatchImpl<true>()+18147>, 0xc3d4ac <HPHP::ExecutionContext::dispatchImpl<true>()+9276>, 0xc3d580 <HPHP::ExecutionContext::dispatchImpl<true>()+9488>, 0xc40c59 <HPHP::ExecutionContext::dispatchImpl<true>()+23529>, 0xc42106 <HPHP::ExecutionContext::dispatchImpl<true>()+28822>, 0xc3fef6 <HPHP::ExecutionContext::dispatchImpl<true>()+20102>, 0xc41eee <HPHP::ExecutionContext::dispatchImpl<true>()+28286>, 0xc41d8e <HPHP::ExecutionContext::dispatchImpl<true>()+27934>, 0xc41e2d <HPHP::ExecutionContext::dispatchImpl<true>()+28093>, 0xc3c985 <HPHP::ExecutionContext::dispatchImpl<true>()+6421>, 0xc3ca44 <HPHP::ExecutionContext::dispatchImpl<true>()+6612>, 0xc3cb25 <HPHP::ExecutionContext::dispatchImpl<true>()+6837>, 0xc3cbf9 <HPHP::ExecutionContext::dispatchImpl<true>()+7049>, 0xc3ccdd <HPHP::ExecutionContext::dispatchImpl<true>()+7277>, 0xc40991 <HPHP::ExecutionContext::dispatchImpl<true>()+22817>, 0xc3fc2c <HPHP::ExecutionContext::dispatchImpl<true>()+19388>, 0xc41c96 <HPHP::ExecutionContext::dispatchImpl<true>()+27686>, 0xc3df75 <HPHP::ExecutionContext::dispatchImpl<true>()+12037>, 0xc3e116 <HPHP::ExecutionContext::dispatchImpl<true>()+12454>, 0xc3e1c5 <HPHP::ExecutionContext::dispatchImpl<true>()+12629>, 0xc3e274 <HPHP::ExecutionContext::dispatchImpl<true>()+12804>, 0xc40418 <HPHP::ExecutionContext::dispatchImpl<true>()+21416>, 0xc41fa7 <HPHP::ExecutionContext::dispatchImpl<true>()+28471>, 0xc4137a <HPHP::ExecutionContext::dispatchImpl<true>()+25354>, 0xc41429 <HPHP::ExecutionContext::dispatchImpl<true>()+25529>, 0xc3b38b <HPHP::ExecutionContext::dispatchImpl<true>()+795>, 0xc3eced <HPHP::ExecutionContext::dispatchImpl<true>()+15485>, 0xc3eab1 <HPHP::ExecutionContext::dispatchImpl<true>()+14913>, 0xc3ee60 <HPHP::ExecutionContext::dispatchImpl<true>()+15856>, 0xc3dd4e <HPHP::ExecutionContext::dispatchImpl<true>()+11486>, 0xc3ddcf <HPHP::ExecutionContext::dispatchImpl<true>()+11615>, 0xc3ec24 <HPHP::ExecutionContext::dispatchImpl<true>()+15284>, 0xc3ed9c <HPHP::ExecutionContext::dispatchImpl<true>()+15660>, 0xc3d2f0 <HPHP::ExecutionContext::dispatchImpl<true>()+8832>, 0xc40354 <HPHP::ExecutionContext::dispatchImpl<true>()+21220>, 0xc3fb6b <HPHP::ExecutionContext::dispatchImpl<true>()+19195>, 0xc4063b <HPHP::ExecutionContext::dispatchImpl<true>()+21963>, 0xc3e941 <HPHP::ExecutionContext::dispatchImpl<true>()+14545>, 0xc3fe47 <HPHP::ExecutionContext::dispatchImpl<true>()+19927>, 0xc3ea02 <HPHP::ExecutionContext::dispatchImpl<true>()+14738>, 0xc3eb75 <HPHP::ExecutionContext::dispatchImpl<true>()+15109>, 0xc3be5a <HPHP::ExecutionContext::dispatchImpl<true>()+3562>, 0xc3bec9 <HPHP::ExecutionContext::dispatchImpl<true>()+3673>, 0xc3c122 <HPHP::ExecutionContext::dispatchImpl<true>()+4274>, 0xc3c1d1 <HPHP::ExecutionContext::dispatchImpl<true>()+4449>, 0xc3bfe7 <HPHP::ExecutionContext::dispatchImpl<true>()+3959>, 0xc3c345 <HPHP::ExecutionContext::dispatchImpl<true>()+4821>, 0xc3c2d6 <HPHP::ExecutionContext::dispatchImpl<true>()+4710>, 0xc3c4bc <HPHP::ExecutionContext::dispatchImpl<true>()+5196>, 0xc3bf78 <HPHP::ExecutionContext::dispatchImpl<true>()+3848>, 0xc3c52b <HPHP::ExecutionContext::dispatchImpl<true>()+5307>, 0xc3c240 <HPHP::ExecutionContext::dispatchImpl<true>()+4560>, 0xc3c73c <HPHP::ExecutionContext::dispatchImpl<true>()+5836>, 0xc3c056 <HPHP::ExecutionContext::dispatchImpl<true>()+4070>, 0xc3c60d <HPHP::ExecutionContext::dispatchImpl<true>()+5533>, 0xc3c3b4 <HPHP::ExecutionContext::dispatchImpl<true>()+4932>, 0xc3c6b9 <HPHP::ExecutionContext::dispatchImpl<true>()+5705>, 0xc3b891 <HPHP::ExecutionContext::dispatchImpl<true>()+2081>, 0xc407a6 <HPHP::ExecutionContext::dispatchImpl<true>()+22326>, 0xc3b8fe <HPHP::ExecutionContext::dispatchImpl<true>()+2190>, 0xc3b9cc <HPHP::ExecutionContext::dispatchImpl<true>()+2396>, 0xc3f934 <HPHP::ExecutionContext::dispatchImpl<true>()+18628>, 0xc40dcd <HPHP::ExecutionContext::dispatchImpl<true>()+23901>, 0xc40d03 <HPHP::ExecutionContext::dispatchImpl<true>()+23699>, 0xc40e95 <HPHP::ExecutionContext::dispatchImpl<true>()+24101>, 0xc3d865 <HPHP::ExecutionContext::dispatchImpl<true>()+10229>, 0xc3d94c <HPHP::ExecutionContext::dispatchImpl<true>()+10460>, 0xc40a18 <HPHP::ExecutionContext::dispatchImpl<true>()+22952>, 0xc40fcd <HPHP::ExecutionContext::dispatchImpl<true>()+24413>, 0xc3ffbc <HPHP::ExecutionContext::dispatchImpl<true>()+20300>, 0xc40ee0 <HPHP::ExecutionContext::dispatchImpl<true>()+24176>, 0xc40074 <HPHP::ExecutionContext::dispatchImpl<true>()+20484>, 0xc4015a <HPHP::ExecutionContext::dispatchImpl<true>()+20714>, 0xc3ce2b <HPHP::ExecutionContext::dispatchImpl<true>()+7611>, 0xc408e3 <HPHP::ExecutionContext::dispatchImpl<true>()+22643>, 0xc3cefb <HPHP::ExecutionContext::dispatchImpl<true>()+7819>, 0xc3cfc7 <HPHP::ExecutionContext::dispatchImpl<true>()+8023>, 0xc3fcb3 <HPHP::ExecutionContext::dispatchImpl<true>()+19523>, 0xc414d8 <HPHP::ExecutionContext::dispatchImpl<true>()+25704>, 0xc410a2 <HPHP::ExecutionContext::dispatchImpl<true>()+24626>, 0xc41119 <HPHP::ExecutionContext::dispatchImpl<true>()+24745>, 0xc3e4f9 <HPHP::ExecutionContext::dispatchImpl<true>()+13449>, 0xc41775 <HPHP::ExecutionContext::dispatchImpl<true>()+26373>, 0xc40b53 <HPHP::ExecutionContext::dispatchImpl<true>()+23267>, 0xc41b94 <HPHP::ExecutionContext::dispatchImpl<true>()+27428>, 0xc404c7 <HPHP::ExecutionContext::dispatchImpl<true>()+21591>, 0xc4192c <HPHP::ExecutionContext::dispatchImpl<true>()+26812>, 0xc412a6 <HPHP::ExecutionContext::dispatchImpl<true>()+25142>, 0xc419f4 <HPHP::ExecutionContext::dispatchImpl<true>()+27012>, 0xc3b276 <HPHP::ExecutionContext::dispatchImpl<true>()+518>, 0xc47093 <HPHP::ExecutionContext::dispatchImpl<true>()+49187>, 0xc44dc5 <HPHP::ExecutionContext::dispatchImpl<true>()+40277>, 0xc476e5 <HPHP::ExecutionContext::dispatchImpl<true>()+50805>, 0xc3e88b <HPHP::ExecutionContext::dispatchImpl<true>()+14363>, 0xc475af <HPHP::ExecutionContext::dispatchImpl<true>()+50495>, 0xc46788 <HPHP::ExecutionContext::dispatchImpl<true>()+46872>, 0xc46840 <HPHP::ExecutionContext::dispatchImpl<true>()+47056>, 0xc3d212 <HPHP::ExecutionContext::dispatchImpl<true>()+8610>, 0xc463c4 <HPHP::ExecutionContext::dispatchImpl<true>()+45908>, 0xc46291 <HPHP::ExecutionContext::dispatchImpl<true>()+45601>, 0xc4721d <HPHP::ExecutionContext::dispatchImpl<true>()+49581>, 0xc43308 <HPHP::ExecutionContext::dispatchImpl<true>()+33432>, 0xc46bd2 <HPHP::ExecutionContext::dispatchImpl<true>()+47970>, 0xc433cb <HPHP::ExecutionContext::dispatchImpl<true>()+33627>, 0xc43469 <HPHP::ExecutionContext::dispatchImpl<true>()+33785>, 0xc3bdc3 <HPHP::ExecutionContext::dispatchImpl<true>()+3411>, 0xc445ff <HPHP::ExecutionContext::dispatchImpl<true>()+38287>, 0xc44532 <HPHP::ExecutionContext::dispatchImpl<true>()+38082>, 0xc447b5 <HPHP::ExecutionContext::dispatchImpl<true>()+38725>, 0xc423fd <HPHP::ExecutionContext::dispatchImpl<true>()+29581>, 0xc446e2 <HPHP::ExecutionContext::dispatchImpl<true>()+38514>, 0xc424d7 <HPHP::ExecutionContext::dispatchImpl<true>()+29799>, 0xc4261e <HPHP::ExecutionContext::dispatchImpl<true>()+30126>, 0xc3dca6 <HPHP::ExecutionContext::dispatchImpl<true>()+11318>, 0xc46a5c <HPHP::ExecutionContext::dispatchImpl<true>()+47596>, 0xc45f71 <HPHP::ExecutionContext::dispatchImpl<true>()+44801>, 0xc46048 <HPHP::ExecutionContext::dispatchImpl<true>()+45016>, 0xc443bc <HPHP::ExecutionContext::dispatchImpl<true>()+37708>, 0xc44482 <HPHP::ExecutionContext::dispatchImpl<true>()+37906>, 0xc465f4 <HPHP::ExecutionContext::dispatchImpl<true>()+46468>, 0xc46e94 <HPHP::ExecutionContext::dispatchImpl<true>()+48676>, 0xc3b5df <HPHP::ExecutionContext::dispatchImpl<true>()+1391>, 0xc45204 <HPHP::ExecutionContext::dispatchImpl<true>()+41364>, 0xc3b6a7 <HPHP::ExecutionContext::dispatchImpl<true>()+1591>, 0xc3b79a <HPHP::ExecutionContext::dispatchImpl<true>()+1834>, 0xc3f863 <HPHP::ExecutionContext::dispatchImpl<true>()+18419>, 0xc453b5 <HPHP::ExecutionContext::dispatchImpl<true>()+41797>, 0xc452c9 <HPHP::ExecutionContext::dispatchImpl<true>()+41561>, 0xc45474 <HPHP::ExecutionContext::dispatchImpl<true>()+41988>, 0xc3d650 <HPHP::ExecutionContext::dispatchImpl<true>()+9696>, 0xc3d76d <HPHP::ExecutionContext::dispatchImpl<true>()+9981>, 0xc43d91 <HPHP::ExecutionContext::dispatchImpl<true>()+36129>, 0xc43ed4 <HPHP::ExecutionContext::dispatchImpl<true>()+36452>, 0xc43ab4 <HPHP::ExecutionContext::dispatchImpl<true>()+35396>, 0xc43c21 <HPHP::ExecutionContext::dispatchImpl<true>()+35761>, 0xc456e0 <HPHP::ExecutionContext::dispatchImpl<true>()+42608>, 0xc45b6c <HPHP::ExecutionContext::dispatchImpl<true>()+43772>, 0xc3cd6b <HPHP::ExecutionContext::dispatchImpl<true>()+7419>, 0xc45620 <HPHP::ExecutionContext::dispatchImpl<true>()+42416>, 0xc45560 <HPHP::ExecutionContext::dispatchImpl<true>()+42224>, 0xc45eee <HPHP::ExecutionContext::dispatchImpl<true>()+44670>, 0xc42e07 <HPHP::ExecutionContext::dispatchImpl<true>()+32151>, 0xc42ee4 <HPHP::ExecutionContext::dispatchImpl<true>()+32372>, 0xc45bef <HPHP::ExecutionContext::dispatchImpl<true>()+43903>, 0xc45d3d <HPHP::ExecutionContext::dispatchImpl<true>()+44237>, 0xc3e323 <HPHP::ExecutionContext::dispatchImpl<true>()+12979>, 0xc45e84 <HPHP::ExecutionContext::dispatchImpl<true>()+44564>, 0xc45883 <HPHP::ExecutionContext::dispatchImpl<true>()+43027>, 0xc459b4 <HPHP::ExecutionContext::dispatchImpl<true>()+43332>, 0xc449ec <HPHP::ExecutionContext::dispatchImpl<true>()+39292>, 0xc45aec <HPHP::ExecutionContext::dispatchImpl<true>()+43644>, 0xc44aec <HPHP::ExecutionContext::dispatchImpl<true>()+39548>, 0xc44c2d <HPHP::ExecutionContext::dispatchImpl<true>()+39869>, 0xc3b43a <HPHP::ExecutionContext::dispatchImpl<true>()+970>, 0xc3f40c <HPHP::ExecutionContext::dispatchImpl<true>()+17308>, 0xc3f304 <HPHP::ExecutionContext::dispatchImpl<true>()+17044>, 0xc3f4fc <HPHP::ExecutionContext::dispatchImpl<true>()+17548>, 0xc3eec1 <HPHP::ExecutionContext::dispatchImpl<true>()+15953>, 0xc3efdc <HPHP::ExecutionContext::dispatchImpl<true>()+16236>, 0xc3f114 <HPHP::ExecutionContext::dispatchImpl<true>()+16548>, 0xc3f22c <HPHP::ExecutionContext::dispatchImpl<true>()+16828>, 0xc3d3b9 <HPHP::ExecutionContext::dispatchImpl<true>()+9033>, 0xc43fde <HPHP::ExecutionContext::dispatchImpl<true>()+36718>, 0xc4389a <HPHP::ExecutionContext::dispatchImpl<true>()+34858>, 0xc43994 <HPHP::ExecutionContext::dispatchImpl<true>()+35108>, 0xc43507 <HPHP::ExecutionContext::dispatchImpl<true>()+33943>, 0xc43604 <HPHP::ExecutionContext::dispatchImpl<true>()+34196>, 0xc4375c <HPHP::ExecutionContext::dispatchImpl<true>()+34540>, 0xc437fb <HPHP::ExecutionContext::dispatchImpl<true>()+34699>, 0xc3c80b <HPHP::ExecutionContext::dispatchImpl<true>()+6043>, 0xc3c8aa <HPHP::ExecutionContext::dispatchImpl<true>()+6202>...}
199 pc = 0x7f3c54911954 "\016}\002\004\016}\004\004V\367\377\377\377\341\341\016}\002\004\016}\004\004\016}\006\004V\363\377\377\377", '\341' <repeats 12 times>, "\016}\002\004\016}\004\004\016}\006\004V\363\377\377\377\341\016}\002\004\016}\004\004V\367\377\377\377\341\016}\002\004\016}\004\004\021}\006\004V\363\377\377\377\341\016}\002\004\016}\004\004V\367\377\377\377", '\341' <repeats 19 times>, <incomplete sequence \341>
200#13 0x0000000000c14689 in HPHP::ExecutionContext::dispatchBB (this=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:7544
201No locals.
202#14 0x0000000000de2082 in HPHP::jit::MCGenerator::enterTC (this=0x7f3c5af0a000, start=0x0, data=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/jit/mc-generator.cpp:999
203 newPc = <optimized out>
204 info = {
205 requestNum = 11,
206 args = {139897092174720, 139897092174832, 48, 139897090793664, 139896664621056},
207 saved_rStashedAr = 139897092174832,
208 stubAddr = 0x0
209 }
210 sk = {
211 <boost::totally_ordered<HPHP::SrcKey, HPHP::SrcKey, boost::detail::empty_base<HPHP::SrcKey>, boost::detail::false_t>> = {
212 <boost::totally_ordered1<HPHP::SrcKey, boost::detail::empty_base<HPHP::SrcKey> >> = {
213 <boost::less_than_comparable1<HPHP::SrcKey, boost::equality_comparable1<HPHP::SrcKey, boost::detail::empty_base<HPHP::SrcKey> > >> = {
214 <boost::equality_comparable1<HPHP::SrcKey, boost::detail::empty_base<HPHP::SrcKey> >> = {
215 <boost::detail::empty_base<HPHP::SrcKey>> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>},
216 members of HPHP::SrcKey:
217 {
218 m_atomicInt = 356482291200,
219 {
220 m_funcId = 5632,
221 m_offset = 83,
222 m_resumed = false
223 }
224 }
225 }
226#15 0x0000000000c123ed in enterTCAtPrologue (start=<optimized out>, ar=<optimized out>, this=<optimized out>) at /usr/src/hhvm/hphp/runtime/vm/jit/mc-generator.h:240
227No locals.
228#16 HPHP::ExecutionContext::enterVMAtFunc (this=this@entry=0x0, enterFnAr=enterFnAr@entry=0x0, stk=stk@entry=HPHP::ExecutionContext::Untrimmed) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:1858
229 np = <optimized out>
230 na = <optimized out>
231 useJitPrologue = <optimized out>
232#17 0x0000000000c126be in HPHP::ExecutionContext::enterVM (this=0x0, this@entry=0x7f3c54693000, ar=0x0, ar@entry=0x7f3c547bffc0, stk=HPHP::ExecutionContext::Untrimmed, resumable=0x7f3c54693000, resumable@entry=0x0, exception=exception@entry=0x0) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:1927
233 __PRETTY_FUNCTION__ = "void HPHP::ExecutionContext::enterVM(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState, HPHP::Resumable*, HPHP::ObjectData*)"
234 faultDepth = <optimized out>
235 SCOPE_EXIT_STATE9 = {
236 <folly::ScopeGuardImplBase> = {
237 dismissed_ = false
238 },
239 members of folly::ScopeGuardImpl<HPHP::ExecutionContext::enterVM(HPHP::ActRec*, HPHP::ExecutionContext::StackArgsState, HPHP::Resumable*, HPHP::ObjectData*)::__lambda62>:
240 function_ = {<No data fields>}
241 }
242 first = false
243 fault = <optimized out>
244#18 0x0000000000c1292c in HPHP::ExecutionContext::invokeFunc (this=this@entry=0x7f3c54693000, retval=retval@entry=0x7f3c433fb0d0, f=0x7f3c4ac1d200, args_=..., this_=this_@entry=0x0, cls=cls@entry=0x0, varEnv=0x7f3c3f008270, invName=invName@entry=0x0, flags=flags@entry=HPHP::ExecutionContext::InvokePseudoMain) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:2092
245 originalSP = 0x7f3c547bfff0
246 _ = {
247 <boost::noncopyable_::noncopyable> = {<No data fields>},
248 members of HPHP::VMRegAnchor:
249 m_old = HPHP::CLEAN
250 }
251 numPassedArgs = 105
252 SCOPE_EXIT_STATE10 = {
253 <folly::ScopeGuardImplBase> = {
254 dismissed_ = false
255 },
256 members of folly::ScopeGuardImpl<HPHP::ExecutionContext::invokeFunc(HPHP::TypedValue*, const HPHP::Func*, const HPHP::Variant&, HPHP::ObjectData*, HPHP::Class*, HPHP::VarEnv*, HPHP::StringData*, HPHP::ExecutionContext::InvokeFlags)::__lambda63>:
257 function_ = {
258 __this = 0x7f3c54693000
259 }
260 }
261#19 0x0000000000c12b7a in HPHP::ExecutionContext::invokeUnit (this=0x7f3c54693000, retval=retval@entry=0x7f3c433fb0d0, unit=0x7f3c543fca40) at /usr/src/hhvm/hphp/runtime/vm/bytecode.cpp:2274
262 func = <optimized out>
263#20 0x0000000000a98791 in invoke_file_impl (currentDir=0x1c42fd3 "", once=true, path=SmartPtr<HPHP::StringData> = {...}, res=Uninit) at /usr/src/hhvm/hphp/runtime/base/builtin-functions.cpp:721
264 initial = true
265 u = <optimized out>
266#21 HPHP::invoke_file (s=SmartPtr<HPHP::StringData> = {...}, once=once@entry=true, currentDir=currentDir@entry=0x1c42fd3 "") at /usr/src/hhvm/hphp/runtime/base/builtin-functions.cpp:734
267 r = Uninit
268#22 0x0000000000a9ae2a in HPHP::include_impl_invoke (file=SmartPtr<HPHP::StringData> = {...}, once=once@entry=true, currentDir=currentDir@entry=0x1c42fd3 "") at /usr/src/hhvm/hphp/runtime/base/builtin-functions.cpp:745
269 rel_path = SmartPtr<HPHP::StringData> = {
270 0x7f3c433fb170 = <error reading variable: Cannot access memory at address 0x7f3c433fb400>
271 }
272#23 0x0000000000a4a619 in HPHP::hphp_invoke (context=context@entry=0x7f3c54693000, cmd="/srv/mediawiki/docroot/wikipedia.org/w/index.php", func=func@entry=false, funcParams=SmartPtr<HPHP::ArrayData>(Null), funcRet=..., reqInitFunc=..., reqInitDoc="/srv/mediawiki/wmf-config/HHVMRequestInit.php", error=@0x7f3c433fb440: false, errorMsg="Internal Server Error", once=once@entry=true, warmupOnly=warmupOnly@entry=false, richErrorMsg=richErrorMsg@entry=false) at /usr/src/hhvm/hphp/runtime/base/program-functions.cpp:1796
273 ssh = {
274 m_section = 0x19045f5 "invoke",
275 m_wallStart = {
276 tv_sec = 139896803013488,
277 tv_nsec = 139897090945160
278 },
279 m_cpuStart = {
280 tv_sec = 139897090945152,
281 tv_nsec = 139896926547488
282 },
283 m_instStart = 0,
284 m_track = 0
285 }
286 oldCwd = SmartPtr<HPHP::StringData> = {
287 0x7f3c5c029280 = Str: '/var/tmp/hhvm'
288 }
289 ret = true
290#24 0x0000000000b23f34 in HPHP::HttpRequestHandler::executePHPRequest (this=this@entry=0x7f3c546af8e0, transport=transport@entry=0x7f3c54528a98, reqURI=..., sourceRootInfo=..., cachableDynamicContent=cachableDynamicContent@entry=false) at /usr/src/hhvm/hphp/runtime/server/http-request-handler.cpp:399
291 context = 0x7f3c54693000
292 file = "/srv/mediawiki/docroot/wikipedia.org/w/index.php"
293 ret = true
294 code = <optimized out>
295 error = false
296 errorMsg = "Internal Server Error"
297 hasPostSend = <optimized out>
298#25 0x0000000000b25070 in HPHP::HttpRequestHandler::handleRequestImpl (this=0x7f3c546af8e0, transport=0x7f3c54528a98) at /usr/src/hhvm/hphp/runtime/server/http-request-handler.cpp:292
299 requestTimeoutSeconds = 0
300 len = 1
301 ret = false
302 vhost = 0x25944e0 <HPHP::VirtualHost::GetDefault()::s_default_vhost>
303 path = "w/index.php"
304 compressed = true
305 treatAsContent = <optimized out>
306 reqURI = {
307 m_originalURL = SmartPtr<HPHP::StringData>(Null),
308 m_queryString = SmartPtr<HPHP::StringData>(Null),
309 m_rewrittenURL = SmartPtr<HPHP::StringData>(Null),
310 m_resolvedURL = SmartPtr<HPHP::StringData>(Null),
311 m_pathInfo = SmartPtr<HPHP::StringData>(Null),
312 m_origPathInfo = SmartPtr<HPHP::StringData>(Null),
313 m_absolutePath = SmartPtr<HPHP::StringData>(Null),
314 m_path = SmartPtr<HPHP::StringData>(Null),
315 m_rewritten = false,
316 m_defaultDoc = false,
317 m_done = false,
318 m_forbidden = false,
319 m_ext = 0x7f3c3f008320 "acheLimit",
320 m_triedURLs = std::vector of length 0, capacity 0
321 }
322 absPath = "/srv/mediawiki/docroot/wikipedia.org/w/index.php"
323 data = 0x1 <error: Cannot access memory at address 0x1>
324 tmpfile = ""
325 ep = {
326 m_info = 0x7f3c55795e80,
327 m_executing = HPHP::ThreadInfo::Idling
328 }
329 ssh = {
330 m_section = 0x1843056 "all",
331 m_wallStart = {
332 tv_sec = 139896734169344,
333 tv_nsec = 64
334 },
335 m_cpuStart = {
336 tv_sec = 0,
337 tv_nsec = 0
338 },
339 m_instStart = 0,
340 m_track = 3
341 }
342 sourceRootInfo = {
343 m_user = SmartPtr<HPHP::StringData>(Null),
344 m_sandbox = SmartPtr<HPHP::StringData>(Null),
345 m_path = SmartPtr<HPHP::StringData>(Null),
346 m_sandboxCond = HPHP::SourceRootInfo::Off,
347 m_serverVars = SmartPtr<HPHP::ArrayData>(Null),
348 static s_path = {
349 m_node = {
350 m_p = 0x7f3c5573fef0,
351 m_on_thread_exit_fn = 0xb38e70 <HPHP::ThreadLocalOnThreadExit<std::string>(void*)>,
352 m_next = 0x7f3c433ff520
353 }
354 },
355 static s_phproot = {
356 m_node = {
357 m_p = 0x0,
358 m_on_thread_exit_fn = 0x0,
359 m_next = 0x0
360 }
361 }
362 }
363 pathTranslation = ""
364 cachableDynamicContent = false
365#26 0x0000000000b25b99 in HPHP::HttpRequestHandler::handleRequest (this=<optimized out>, transport=<optimized out>) at /usr/src/hhvm/hphp/runtime/server/http-request-handler.cpp:332
366No locals.
367#27 0x0000000000b64c69 in HPHP::ServerWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::FastCGITransportTraits>::doJobImpl (this=0x7f3c54622f40, job=std::shared_ptr (count 3, weak 0) 0x7f3c546d1488, abort=<optimized out>) at /usr/src/hhvm/hphp/runtime/server/server-worker.h:103
368 cmd = "/wiki/Compulsive_Spender"
369 transport = 0x7f3c54528a98
370 reqStart = {
371 tv_sec = 0,
372 tv_nsec = 0
373 }
374 traits = {
375 m_server = 0x7f3c5d17b100,
376 m_transport = std::shared_ptr (count 3, weak 0) 0x7f3c54528a98
377 }
378 server = 0x7f3c5d17b100
379 error = true
380 errorMsg = ""
381#28 0x0000000000b64e98 in HPHP::ServerWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::FastCGITransportTraits>::doJob (this=<optimized out>, job=...) at /usr/src/hhvm/hphp/runtime/server/server-worker.h:57
382No locals.
383#29 0x0000000000b63e08 in HPHP::JobQueueWorker<std::shared_ptr<HPHP::FastCGIJob>, HPHP::Server*, true, false, HPHP::JobQueueDropVMStack>::start (this=0x7f3c54622f40) at /usr/src/hhvm/hphp/util/job-queue.h:461
384 expired = false
385 job = std::shared_ptr (count 3, weak 0) 0x7f3c546d1488
386#30 0x00000000015b1c37 in threadFuncImpl (this=0x7f3c54581f00) at /usr/src/hhvm/hphp/util/async-func.cpp:131
387No locals.
388#31 HPHP::AsyncFuncImpl::ThreadFunc (obj=0x7f3c54581f00) at /usr/src/hhvm/hphp/util/async-func.cpp:51
389 self = 0x7f3c54581f00
390#32 0x00007f3c658d7182 in start_thread (arg=0x7f3c433ff700) at pthread_create.c:312
391 __res = <optimized out>
392 pd = 0x7f3c433ff700
393 now = <optimized out>
394 unwind_buf = {
395 cancel_jmp_buf = {{
396 jmp_buf = {139896803030784, -2214506153668134816, 0, 0, 139897236600152, 139896803030784, 2250946720058947680, 2250873441838938208},
397 mask_was_saved = 0
398 }},
399 priv = {
400 pad = {0x0, 0x0, 0x0, 0x0},
401 data = {
402 prev = 0x0,
403 cleanup = 0x0,
404 canceltype = 0
405 }
406 }
407 }
408 not_first_call = <optimized out>
409 pagesize_m1 = <optimized out>
410 sp = <optimized out>
411 freesize = <optimized out>
412 __PRETTY_FUNCTION__ = "start_thread"
413#33 0x00007f3c64de3fbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
414No locals.

I wrote an HNI extension for just tidy_repair_string() and pushed it to the hni branch of the repository. Packaged it and deployed it to Labs. Looks good so far.

Extension deployed everywhere. New result for ab command:

Zend:

Requests per second:    63.46 [#/sec] (mean)
Time per request:       1575.710 [ms] (mean)
Time per request:       15.757 [ms] (mean, across all concurrent requests)

HHVM:

Requests per second:    121.21 [#/sec] (mean)
Time per request:       824.985 [ms] (mean)
Time per request:       8.250 [ms] (mean, across all concurrent requests)