Decode bug in portable byte code
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=6146
Reported by Martin Stjernholm mast@roxen.com
decode_value fails with the following error.
Internal server error: Missing line directive in byte code.
-:1: PikeCompiler(UNDEFINED, UNDEFINED, -1, -1, UNDEFINED, UNDEFINED)->compile()
D:/Sites/Roxen CMS/server-5.1.185/etc/modules/RXML.pmod/module.pmod (rev 1.420):9823: RXML->string_to_p_code("¶ke0cd#\6\1RRXML\6\1PCode\0\4æ7.2\b\f#àæRts#à\6\1Rconf(Ç'Ë˼\27\26\6\brxml_tag_set\6\f0?0Ý\225¸Òä¨Y½\233\204.äý#à\6\1Rtype\6\5text/htmlæxmlhà#\0\0\6\0Rtag#à\17\2#à\6\0Rmod\17\3\6\6rxmltags#0&\1
7\6\6\1cache\17\6\0\3dc\5\0\2I/6á\0\a\0"+[5483929],Configuration(online.fe),1)
/.../
Note that the backtrace blames PikeCompiler()->compile(), but on module.pmod:9823 is a call to decode_value.
The encoded string has been created in another pike installation. Investigations suggest that it's not a different version of pike, though. It seems like the same string can be decoded in the server it came from, but there's no hard evidence on that.
The problem appears to be specific to this particular instance of the dumped code - other similar cases work.
If this is due to different pike build or resolver environment, pike should be able to report such issues differently from pure format problems. (On a related note, decode_value is badly in need of proper error objects that can be classified in a sane way.)
See also RT #17001.