pike issueshttps://git.lysator.liu.se/pikelang/pike/-/issues2010-12-20T16:28:18Zhttps://git.lysator.liu.se/pikelang/pike/-/issues/5832SDL.Joystick objects cause a Segmentation Fault on program exit2010-12-20T16:28:18ZPeter BortasSDL.Joystick objects cause a Segmentation Fault on program exitImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5832
Reported by <pclar7@yahoo.co.uk>
A program that creates an SDL.Joystick object reports a Segmentation Fault to the console on program exit. Otherwise, SDL.Joystick...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5832
Reported by <pclar7@yahoo.co.uk>
A program that creates an SDL.Joystick object reports a Segmentation Fault to the console on program exit. Otherwise, SDL.Joystick objects seem to function perfectly.
```
This short program will reproduce the error (you need a joystick plugged in):
int main()
{
SDL.init(SDL.INIT_VIDEO|SDL.INIT_JOYSTICK);
SDL.Surface screen = SDL.set_video_mode(640, 480, 0, SDL.SWSURFACE);
// How many joysticks?
int nj = SDL.num_joysticks();
for ( int i = 0; i < nj; ++i )
{
// Create the SDL.Joystick object.
SDL.Joystick my_joy = SDL.Joystick(i);
write("%d: %s\n", my_joy->index(), my_joy->name());
} // for
// Clean up.
SDL.quit();
return 0;
```
} // main
Here are the results of a gdb backtrace:
Reading symbols from /usr/local/bin/pike...done.
(gdb) set args try_joystick.pike
(gdb) run
Starting program: /usr/local/bin/pike try_joystick.pike
[Thread debugging using libthread_db enabled]
0: Microsoft X-Box 360 pad
```
Program received signal SIGSEGV, Segmentation fault.
0x00475caf in SDL_JoystickClose () from /usr/lib/libSDL-1.2.so.0
(gdb) backtrace
#0 0x00475caf in SDL_JoystickClose () from /usr/lib/libSDL-1.2.so.0
#1 0x003d2f2f in exit_Joystick_struct (ev=1)
at /home/zino/hack-local/Pike/distmaker-7.8/src/post_modules/SDL/SDL.cmod:1848
#2 Joystick_event_handler (ev=1)
at /home/zino/hack-local/Pike/distmaker-7.8/src/post_modules/SDL/SDL.cmod:1991
#3 0x081264b3 in destruct_object (o=0x833ea2c, reason=DESTRUCT_NO_REFS)
at /home/matthew/Downloads/Pike-v7.8.352/src/object.c:863
#4 0x08128102 in low_destruct_objects_to_destruct ()
at /home/matthew/Downloads/Pike-v7.8.352/src/object.c:986
#5 0x0807e99e in low_return ()
at /home/matthew/Downloads/Pike-v7.8.352/src/interpret.c:2051
#6 0x0807ecac in jump_opcode_F_RETURN_0 ()
at /home/zino/hack-local/Pike/7.8-distmaker/src/interpret_functions.h:1614
#7 0x003c8e41 in ?? ()
#8 0x080771cc in catching_eval_instruction (pc=<value optimised out>)
at /home/matthew/Downloads/Pike-v7.8.352/src/interpret.c:2245
#9 0x0807d05d in jump_opcode_F_CATCH ()
at /home/zino/hack-local/Pike/7.8-distmaker/src/interpret_functions.h:1287
#10 0x003992f2 in ?? ()
#11 0x08080dcd in mega_apply (type=APPLY_LOW, args=1, arg1=0x833eb6c,
arg2=0x38) at /home/matthew/Downloads/Pike-v7.8.352/src/interpret.c:2213
---Type <return> to continue, or q <return> to quit---
#12 0x08081170 in apply (o=0x8393270, fun=0x821f691 "_main", args=1)
at /home/matthew/Downloads/Pike-v7.8.352/src/interpret.c:2604
#13 0x0806a468 in main (argc=2, argv=0xbffff444)
at /home/matthew/Downloads/Pike-v7.8.352/src/main.c:634
Problem can be fixed temporarily by explicitly destroying SDL.Joystick objects before call to SDL.quit (thanks to Henrik Grubbström at Roxen):
for ( int i = 0; i < nj; ++i )
{
// Create the SDL.Joystick object.
SDL.Joystick my_joy = SDL.Joystick(i);
write("%d: %s\n", my_joy->index(), my_joy->name());
destruct(my_joy);
} // for
I am using:
Pike v7.8 release 352
on:
Linux tyglyn 2.6.35-23-generic #41-Ubuntu SMP Wed Nov 24 10:18:49 UTC 2010 i686 GNU/Linux
(Ubuntu 10.10, i386)
```
Thanks.Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5821Failed to connect postgres server when port specified2010-12-13T16:33:12ZPeter BortasFailed to connect postgres server when port specifiedImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5821
Reported by Eiichiro ITANI, <emu@ceres.dti.ne.jp>
When postgresql server is running with different port,
pike7.4 fail to connect server. I beleive it's because
some...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5821
Reported by Eiichiro ITANI, <emu@ceres.dti.ne.jp>
When postgresql server is running with different port,
pike7.4 fail to connect server. I beleive it's because
some typo in postgres.c code.
I checked with Postgres.so module with 'PGDEBUG' option defined.
On dbhost, I'm running two postgresql instance, one for port 5432 and other
for port 5433. And server listening on 5433 accept connection with those
settings, but 5432 doesn't.
```
$ pike7.4
Pike v7.4 release 693 running Hilfe v3.5 (Incremental Pike Frontend)
> object s = Sql.Sql("postgres://testuser@dbhost:5433/test_db");
pgres_create().
f_create(host=dbhost, port=(null), db=test_db, user=testuser, pass=(null)).
set_error(fe_sendauth: no password supplied
).
Could not connect to database. Reason: "fe_sendauth: no password supplied
".
Sql.postgres: Sql.postgres()->create("dbhost","test_db","testuser","",5433)
/usr/local/pike/pike7.4/pike/7.4.693/lib/modules/Sql.pmod/postgres.pike:160: Sql.postgres()->create("dbhost:5433","test_db","testuser","CENSORED")
/usr/local/pike/pike7.4/pike/7.4.693/lib/modules/Sql.pmod/Sql.pike:232: Sql.Sql()->create("postgres://testuser@dbhost:5433/test_db","test_db","testuser","CENSORED",UNDEFINED)
pgres_destroy().
```
I checked postgres.c and wrote patch. Now I can connect to postgres on port
5433.
```
$ pike7.4
Pike v7.4 release 693 running Hilfe v3.5 (Incremental Pike Frontend)
> object s = Sql.Sql("postgres://neowww@dbhost:5433/neowing_db");
>
```
I know pike7.4 is obsolete already, but I need it for Roxen4.5 running.
Could you check this?
I'll attach my patch later.Pike 7.4Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5793Java support not detected on OS X 10.6 + Java Update 32011-12-13T17:20:29ZPeter BortasJava support not detected on OS X 10.6 + Java Update 3Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5793
Reported by Jonas Wallden <jonasw@roxen.com>
Apple recently shipped Java Update 3 for OS X 10.6. First, it ships without system headers so a separate developer packa...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5793
Reported by Jonas Wallden <jonasw@roxen.com>
Apple recently shipped Java Update 3 for OS X 10.6. First, it ships without system headers so a separate developer package must be installed from e.g. connect.apple.com (requires a developer account).
However, even after this the JDK structure seems sufficiently different that Pike's configure script cannot detect proper paths and flags.
checking for JAVA_HOME... /Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents
checking for Java architecture directory name...
checking for Java libraries... no
checking for the Java include directory... /Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Headers
Adding /Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Headers to the include search path.
Adding /Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Headers//. to the include search path.
checking for JavaVM (MacOS X)... no
checking for pkg-config... no
checking -DMACOSX... yes
checking for grep that handles long lines and -e... (cached) /usr/bin/grep
checking for egrep... (cached) /usr/bin/grep -E
checking for ANSI C header files... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for memory.h... (cached) yes
checking for strings.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
checking jni.h usability... yes
checking jni.h presence... yes
checking for jni.h... yes
checking for winbase.h... (cached) no
checking for setjmp.h... (cached) yes
checking ffi.h usability... no
checking ffi.h presence... no
checking for ffi.h... no
checking ffi/ffi.h usability... yes
checking ffi/ffi.h presence... yes
checking for ffi/ffi.h... yes
checking for ffi_arg... yes
checking for ffi_sarg... yes
checking for sysOpen in -lhpi... no
checking for JNI_CreateJavaVM in -ljvm... no
checking for JNI_CreateJavaVM in -lgcj... no
The closest symbol match to JNI_CreateJavaVM is located in $JAVA_HOME/Libraries/libjvm.dylib, though it's named _JNI_CreateJavaVM_Impl so I don't know if that is the proper one since it's 32-bit only. Here are a few candidates:
-rwxrwxr-x 1 root admin 3608352 12 Okt 07:20 libclient.dylib*
lrwxr-xr-x 1 root admin 15 11 Nov 11:10 libclient64.dylib@ -> libserver.dylib
lrwxr-xr-x 1 root admin 15 11 Nov 11:10 libjvm.dylib@ -> libclient.dylib
-rwxrwxr-x 1 root admin 11543712 12 Okt 07:20 libserver.dylib*Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5792Parser.Tabular handles Stdio.File objects bad2010-11-11T11:11:49ZPeter BortasParser.Tabular handles Stdio.File objects badImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5792
Reported by Erik Dahl <erikd@roxen.com>
```
Pike v7.8 release 468 running Hilfe v3.5 (Incremental Pike Frontend)
> Parser.Tabular(Stdio.File("data.csv"), Stdio.File(...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5792
Reported by Erik Dahl <erikd@roxen.com>
```
Pike v7.8 release 468 running Hilfe v3.5 (Incremental Pike Frontend)
> Parser.Tabular(Stdio.File("data.csv"), Stdio.File("format.csv"));
```
Does not work.
If you changes those into Stdio.FILE object everything is fine.
```
The line that contains this statement is the fishy one:
(input=Stdio.FILE())->assign(input);
```
These changes helped me (maybe there are better ways?):
```
diff -u Tabular.pike.orig Tabular.pike
--- Tabular.pike.orig 2010-11-11 01:02:43.000000000 +0100
+++ Tabular.pike 2010-11-11 01:13:47.000000000 +0100
@@ -666,8 +666,11 @@
input="";
if(stringp(input))
input=Stdio.FakeFile(input);
- if(!input->unread)
- (input=Stdio.FILE())->assign(input);
+ if(!input->unread) {
+ Stdio.FILE tmpf = Stdio.FILE();
+ tmpf->assign(input);
+ input = tmpf;
+ }
int started=0;
int lineno=0;
string beginend="Tabular description ";
```Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5730Backtrace when Protocols.HTTP.Query objects are cleaned up2010-10-12T20:07:36ZPeter BortasBacktrace when Protocols.HTTP.Query objects are cleaned upImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5730
Reported by Martin Stjernholm <mast@roxen.com>
These occur regurlarly when the refcount garb frees Protocols.HTTP.Query objects:
```
File not open.
-:1: Fd(-49)->se...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5730
Reported by Martin Stjernholm <mast@roxen.com>
These occur regurlarly when the refcount garb frees Protocols.HTTP.Query objects:
```
File not open.
-:1: Fd(-49)->set_nonblocking()
-:1: Stdio.File("socket", "152.90.238.80:443", 777 /* fd=-1 */)->set_nonblocking()
C:/Program Files (x86)/Pike/lib/modules/Stdio.pmod/module.pmod:1374: Stdio.File("socket", "152.90.238.80:443", 777 /* fd=-1 */)->set_nonblocking(UNDEFINED,UNDEFINED,UNDEFINED,UNDEFINED,UNDEFINED)
C:/Program Files (x86)/Pike/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike:1168: Protocols.HTTP.Query()->close()
C:/Program Files (x86)/Pike/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike:1160: Protocols.HTTP.Query()->destroy()
... the rest of the backtrace is unrelated
```
Some cvs digging points at this commit:
revision 1.106
date: 2010/03/12 10:18:34; author: srb; state: Exp; lines: +20 -19
Expose close() so you do not have to wait for garbage collection.
It removes a few catches in the destroy() function. Apparently they are there for a reason, but hopefully it's possible to solve the problem in a less blunt way.Pike 7.8https://git.lysator.liu.se/pikelang/pike/-/issues/5636Performance problems in Locale.Charset.*.low_convert2010-08-24T16:41:33ZPeter BortasPerformance problems in Locale.Charset.*.low_convertImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5636
Reported by Martin Karlgren <marty@roxen.com>
Locale.Charset.*.low_convert are very inefficient when they need to fallback to replacement strings/callbacks. This bec...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5636
Reported by Martin Karlgren <marty@roxen.com>
Locale.Charset.*.low_convert are very inefficient when they need to fallback to replacement strings/callbacks. This becomes noticeable when the input string is relatively large and contains many wide characters.
$ time pike -e 'Locale.Charset.encoder ("latin1", "")->feed ("\x100" * 100000);'
real 0m0.794s
user 0m0.788s
sys 0m0.000s
$ time pike -e 'Locale.Charset.encoder ("latin1", "")->feed ("\x100" * 500000);'
real 1m15.714s
user 0m24.762s
sys 0m50.815s
$ time pike -e 'Locale.Charset.encoder ("latin1", "")->feed ("\xff" * 500000);'
real 0m0.191s
user 0m0.116s
sys 0m0.008sPike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5519Crash in backend::adjust_up()2010-06-22T18:42:09ZPeter BortasCrash in backend::adjust_up()Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5519
Reported by Jonas Wallden <jonasw@roxen.com>
Process: pike [2608]
Path: /home/jonasw/pike/7.8/build/darwin-10.2.0-i386/pike
Identifier: pike
...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5519
Reported by Jonas Wallden <jonasw@roxen.com>
Process: pike [2608]
Path: /home/jonasw/pike/7.8/build/darwin-10.2.0-i386/pike
Identifier: pike
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: sh [2538]
Date/Time: 2010-06-14 17:09:05.563 +0200
OS Version: Mac OS X 10.6.3 (10D573)
Report Version: 6
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000008
Crashed Thread: 20
[...]
```
Thread 20 Crashed:
0 pike 0x000000010004b24a adjust_up + 58 (backend.cmod:584)
1 pike 0x000000010004e3fc f_Backend_call_out + 764 (backend.cmod:398)
2 pike 0x0000000100010bf7 low_mega_apply + 1703 (apply_low.h:388)
3 pike 0x00000001000141f0 eval_instruction + 7600 (interpret_functions.h:2065)
4 pike 0x000000010001cca2 catching_eval_instruction + 98 (interpret.c:2246)
5 pike 0x0000000100019a88 eval_instruction + 30280 (interpret_functions.h:1287)
6 pike 0x000000010001cdad mega_apply + 205 (interpret.c:2218)
7 pike 0x000000010011ad70 new_thread_func + 1584 (threads.c:1115)
8 libSystem.B.dylib 0x00007fff85f988b6 _pthread_start + 331
9 libSystem.B.dylib 0x00007fff85f98769 thread_start + 13
```
[...]
Thread 20 crashed with X86 Thread State (64-bit):
rax: 0x000000004c164615 rbx: 0x0000000103787a20 rcx: 0x0000000100b37e40 rdx: 0x00000000000004e0
rdi: 0x0000000100510400 rsi: 0x000000000000013a rbp: 0x00000001070c5760 rsp: 0x00000001070c5740
r8: 0x000000000000009c r9: 0x0000000000000000 r10: 0x00000001082505d0 r11: 0x000000000039ba29
r12: 0x0000000100510400 r13: 0x00000001096ead60 r14: 0x0000000000000139 r15: 0x000000010824fc00
rip: 0x000000010004b24a rfl: 0x0000000000010202 cr2: 0x0000000000000008
```
backend.cmod:584 contains this line in my tree:
```
if(CMP(pos, parent))Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5423Improve error message when indexing a function2010-04-15T18:55:45ZPeter BortasImprove error message when indexing a functionImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5423
Reported by Martin Stjernholm <mast@roxen.com>
Consider:
```
object x() {...}
void foo()
{
x->bar();
}
```
Here the function call parens for x were acc...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5423
Reported by Martin Stjernholm <mast@roxen.com>
Consider:
```
object x() {...}
void foo()
{
x->bar();
}
```
Here the function call parens for x were accidentally left out. The compiler reports the attempt to index the function like this:
```
/home/mast/foo.pike:4:Indexing on illegal type.
/home/mast/foo.pike:4:Got : string(0..255).
```
This message doesn't say what was being indexed, and if macros are involved it might not be trivial to find out. The compiler ought to say something like "Cannot index a function" instead.Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5344pgsql::set_charset() fails when not properly authenticated2010-03-24T09:15:47ZPeter Bortaspgsql::set_charset() fails when not properly authenticatedImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5344
Reported by Marcus Wellhardh <wellhard@roxen.com>
Got this error in the db-tab when trying to correct a non working pgsql connection to a working one:
```
...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5344
Reported by Marcus Wellhardh <wellhard@roxen.com>
Got this error in the db-tab when trying to correct a non working pgsql connection to a working one:
```
: Internal server error: FATAL 28000: password authentication failed for user "postgres"
: (auth.c:auth_failed:1017)
:
: pike/lib/pike/modules/Sql.pmod/pgsql.pike:1071: pgsql(postgres@localhost:5432/my_db,0)->reconnect(1)
16:12:30 : pike/lib/pike/modules/Sql.pmod/pgsql.pike:963: pgsql(postgres@localhost:5432/my_db,0)->_decodemsg(7)
15m 5.8s : pike/lib/pike/modules/Sql.pmod/pgsql.pike:1746: pgsql(postgres@localhost:5432/my_db,0)->big_query("SET CLIENT_ENCODING TO 'UTF8'",UNDEFINED,UNDEFINED)
: pike/lib/pike/modules/Sql.pmod/pgsql.pike:335: pgsql(postgres@localhost:5432/my_db,0)->set_charset("UTF8")
: pike/lib/pike/modules/Sql.pmod/Sql.pike:326: Sql.Sql()->set_charset("UTF8")
: base_server/roxenloader.pike:1926: roxenloader->sq_cache_get("pgsql;//postgres;posgres@localhost/my_db:-",0,"UTF8")
: etc/modules/DBManager.pmod:672: DBManager->sql_cache_get("pgsql://postgres:posgres@localhost/my_db",0,0)
16:12:30 : etc/modules/DBManager.pmod:654: DBManager->low_get("rw","pgsql",0,UNDEFINED)
15m 5.8s : etc/modules/DBManager.pmod:1164: DBManager->get("pgsql",UNDEFINED,UNDEFINED,0,UNDEFINED)
: etc/modules/DBManager.pmod:1171: DBManager->cached_get("pgsql",UNDEFINED,UNDEFINED,UNDEFINED)
: config_interface/dbs/browser.pike:301: /lhome/wellhard/Testarea/roxen-5.0.449-release3-cms-rhel5_x86/roxen/server-5.0.449/config_interface/dbs/browser()->move_db("pgsql",RequestID(/dbs/browser.pike))
: config_interface/dbs/browser.pike:663: /lhome/wellhard/Testarea/roxen-5.0.449-release3-cms-rhel5_x86/roxen/server-5.0.449/config_interface/dbs/browser()->parse(@0=RequestID(/dbs/browser.pike))
: modules/scripting/pikescript.pike:138: RoxenModule(Administration Interface/pikescript#0)->call_script(/lhome/wellhard/Testarea/roxen-5.0.449-release3-cms-rhel5_x86/roxen/server-5.0.449/config_interface/dbs/browser()->parse,@0,Stdio.File("config_interface/dbs/browser.pike", "r", 777 /* fd=24 */))
16:12:30 : modules/scripting/pikescript.pike:262: RoxenModule(Administration Interface/pikescript#0)->handle_file_extension(@1=Stdio.File("config_interface/dbs/browser.pike", "r", 777 /* fd=24 */),"pike",@0)
15m 5.8s : base_server/configuration.pike:2359: Configuration(Administration Interface)->low_get_file(@0,UNDEFINED)
: base_server/configuration.pike:2493: Configuration(Administration Interface)->get_file(@0,UNDEFINED,UNDEFINED)
: base_server/configuration.pike:2468: Configuration(Administration Interface)->handle_request(@0,UNDEFINED)
: protocols/http.pike:2823: RequestID(/dbs/browser.pike)->handle_request()
: base_server/roxen.pike:849: roxen()->handler_thread(3)
```Pike 7.8https://git.lysator.liu.se/pikelang/pike/-/issues/5302Calendar.ISO.Year("2020")->seconds()2010-02-27T16:58:47ZPeter BortasCalendar.ISO.Year("2020")->seconds()Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5302
Reported by Tomas Brimor, Roxen <tomas@roxen.com>
Running the following code in Hilfe makes pike process unresponsive and consuming alot of memory. Not sure if would...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5302
Reported by Tomas Brimor, Roxen <tomas@roxen.com>
Running the following code in Hilfe makes pike process unresponsive and consuming alot of memory. Not sure if would have returned anything as I killed it before it returned anything.
```
> Calendar.ISO.Year("2020")->seconds();
```
Both 7.4 and 7.8Pike 7.4Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5273SIGSEGV/Pike fatal due to Pike code execution attempt in compiler2010-02-09T13:30:54ZPeter BortasSIGSEGV/Pike fatal due to Pike code execution attempt in compilerImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5273
Reported by Martin Karlgren <marty@roxen.com>
Verified in 7.8.408
Occurs while trying to compile the following test case:
```
class Test
{
protected object foo;
...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5273
Reported by Martin Karlgren <marty@roxen.com>
Verified in 7.8.408
Occurs while trying to compile the following test case:
```
class Test
{
protected object foo;
mixed `-> (mixed what)
{
return foo;
}
int bar ()
{
return (this_object()->gazonk == "foo") ? 1 : 0;
}
}
```
With RTLDEBUG:
```
/home/marty/Pike/7.8/src/svalue.c:2070: Fatal error:
Invalid type 42904 in svalue at 0xa49f9a8.
Backtrace at time of fatal:
test.pike:7: object(/home/marty/test.pike:1)->`->("gazonk")
test.pike:8: object(/home/marty/test.pike:1)->bar()
-:1: PikeCompiler("", UNDEFINED, -1, -1, target, UNDEFINED)->compile()
-:1: DefaultCompilerEnvironment->compile(PikeCompiler("", UNDEFINED, -1, -1, target, UNDEFINED))
Pike/7.8/build/linux-2.6.28-17-generic-i686/master.pike:1074:
compile_string("class Test\n{\n protected object foo;\n\n mixed `-> (mixed what)\n {\n return foo;\n }\n\n int bar ()\n {\n return (t
his_object()->gazonk"+[62],"/home/marty/test.pike",UNDEFINED,/home/marty/test,0,UNDEFINED)
Pike/7.8/build/linux-2.6.28-17-generic-i686/master.pike:1768: master()->low_findprog("/home/marty/test",".pike",UNDEFINED,UNDEFINED)
Pike/7.8/build/linux-2.6.28-17-generic-i686/master.pike:1877: master()->findprog("/home/marty/test",".pike",UNDEFINED,UNDEFINED)
Pike/7.8/build/linux-2.6.28-17-generic-i686/master.pike:1916:
master()->low_cast_to_program("/home/marty/test","/home/marty/Pike/7.8/build/linux-2.6.28-17-generic-i686/master.pike",UNDEFINED,UNDEFINED)
Pike/7.8/build/linux-2.6.28-17-generic-i686/master.pike:1950:
master()->cast_to_program("/home/marty/test.pike","/home/marty/Pike/7.8/build/linux-2.6.28-17-generic-i686/master.pike",UNDEFINED)
```
===================================
```
(gdb) bt
#0 0xb80c5430 in __kernel_vsyscall ()
#1 0xb7e986d0 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7e9a098 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0x0810d777 in debug_va_fatal (fmt=0x83483f0 "Invalid type %d in svalue at %p.\n", args=0xbf8bde44 "\230?") at /home/marty/Pike/7.8/src/error.c:644
#4 0x0810d8e8 in debug_fatal (fmt=0x83483f0 "Invalid type %d in svalue at %p.\n") at /home/marty/Pike/7.8/src/error.c:651
#5 0x0821bc6d in debug_svalue_type_error (s=0xa49f9a8) at /home/marty/Pike/7.8/src/svalue.c:2070
#6 0x0818c573 in low_object_index_no_free (to=0xb7c7e1e0, o=0xa45a768, f=0) at /home/marty/Pike/7.8/src/object.c:1229
#7 0xb7bf8528 in ?? ()
#8 0x0809f880 in mega_apply (type=APPLY_LOW, args=1, arg1=0xa45a768, arg2=0x1) at /home/marty/Pike/7.8/src/interpret.c:1421
#9 0x080a043f in apply_lfun (o=0xa45a768, fun=22, args=1) at /home/marty/Pike/7.8/src/interpret.c:2599
#10 0x0818d48d in object_index_no_free (to=0xbf8be030, o=0xa45a768, inherit_number=0, index=0xbf8be038) at /home/marty/Pike/7.8/src/object.c:1380
#11 0x081a6ac3 in index_no_free (to=0xbf8be030, what=0xb7c7e1d0, ind=0xbf8be038) at /home/marty/Pike/7.8/src/operators.c:87
#12 0x0808a6e3 in opcode_F_ARROW (arg1=2) at /home/marty/Pike/7.8/src/interpret_functions.h:1842
#13 0xb7bf8572 in ?? ()
#14 0x0809b922 in apply_low_safe_and_stupid (o=0xa45a768, offset=114) at /home/marty/Pike/7.8/src/interpret.c:1421
#15 0x0822b630 in eval_low (n=0xa4c28f8, print_error=0) at /home/marty/Pike/7.8/src/las.c:5274
#16 0x0822ba63 in node_is_tossable (n=0xa4c28f8) at /home/marty/Pike/7.8/src/las.c:1989
#17 0x0823488f in optimize (n=0xa4c2880) at /home/marty/Pike/7.8/src/treeopt.h:307
#18 0x0823cbdd in optimize_node (n=0xa4c27b8) at /home/marty/Pike/7.8/src/las.c:5200
#19 0x0823cc73 in dooptcode (name=0xa4c4dfc, n=0xa4c27b8, type=0xa45291c, modifiers=0) at /home/marty/Pike/7.8/src/las.c:5511
#20 0x08075376 in yyparse () at language.yacc:1086
#21 0x081c9058 in run_pass2 (c=0xa48ad50) at /home/marty/Pike/7.8/src/program.c:8296
#22 0x081c98ab in f_compilation_compile (args=0) at /home/marty/Pike/7.8/src/program.c:8759
#23 0x0809d2c2 in low_mega_apply (type=APPLY_LOW, args=<value optimized out>, arg1=0xa45a780, arg2=0x1) at /home/marty/Pike/7.8/src/apply_low.h:226
#24 0x0809f687 in mega_apply (type=APPLY_LOW, args=0, arg1=0xa45a780, arg2=0x1) at /home/marty/Pike/7.8/src/interpret.c:2211
#25 0x080a0380 in apply (o=0xa45a780, fun=0x8340eff "compile", args=0) at /home/marty/Pike/7.8/src/interpret.c:2617
#26 0x081ab865 in f_compilation_env_compile (args=6) at /home/marty/Pike/7.8/src/program.c:7841
#27 0x0809d2c2 in low_mega_apply (type=APPLY_LOW, args=<value optimized out>, arg1=0xa45aa50, arg2=0x1) at /home/marty/Pike/7.8/src/apply_low.h:226
#28 0x0809f687 in mega_apply (type=APPLY_LOW, args=6, arg1=0xa45aa50, arg2=0x1) at /home/marty/Pike/7.8/src/interpret.c:2211
#29 0x0824a13a in f_compile (args=6) at /home/marty/Pike/7.8/src/builtin_functions.c:4229
#30 0x08084d5a in opcode_F_CALL_BUILTIN (arg1=33) at /home/marty/Pike/7.8/src/interpret_functions.h:2303
#31 0xb7b35dbd in ?? ()
#32 0x08098f0b in catching_eval_instruction (pc=0xb7b3b41f "?0?;\b\203@\034\024?D$\004?") at /home/marty/Pike/7.8/src/interpret.c:1421
#33 0x080992cd in jump_opcode_F_CATCH () at /home/marty/Pike/7.8/src/interpret_functions.h:1287
#34 0xb7b3b419 in ?? ()
#35 0x0809f880 in mega_apply (type=APPLY_LOW, args=2, arg1=0xa45a9f0, arg2=0x2c) at /home/marty/Pike/7.8/src/interpret.c:1421
#36 0x081a0548 in o_cast (type=0xa452cb8, run_time_type=5) at /home/marty/Pike/7.8/src/operators.c:678
#37 0x081a1ccb in f_cast () at /home/marty/Pike/7.8/src/operators.c:898
#38 0xb7b4b96d in ?? ()
#39 0x08098f0b in catching_eval_instruction (pc=0xb7b4b906 "?0?;\b\203@\034\027?\004$Z") at /home/marty/Pike/7.8/src/interpret.c:1421
#40 0x080992cd in jump_opcode_F_CATCH () at /home/marty/Pike/7.8/src/interpret_functions.h:1287
#41 0xb7b4b900 in ?? ()
#42 0x0809f880 in mega_apply (type=APPLY_LOW, args=1, arg1=0xa45a9f0, arg2=0x38) at /home/marty/Pike/7.8/src/interpret.c:1421
#43 0x080a0380 in apply (o=0xa45a9f0, fun=0x830bc25 "_main", args=1) at /home/marty/Pike/7.8/src/interpret.c:2617
#44 0x0807147e in main (argc=2, argv=0xbf8bf7b4) at /home/marty/Pike/7.8/src/main.c:634
```Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5143function lower_case/upper_case change non ascii char2009-12-11T16:32:00ZPeter Bortasfunction lower_case/upper_case change non ascii charImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5143
Reported by Eiichiro ITANI, <emu@ceres.dti.ne.jp>
It looks like lower_case() and upper_case() just set/drop every characters 5th bit of given string,
but it's not de...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5143
Reported by Eiichiro ITANI, <emu@ceres.dti.ne.jp>
It looks like lower_case() and upper_case() just set/drop every characters 5th bit of given string,
but it's not desired action.
When string contains 8bit character byte stream(for example Japanese EUC),
lower_case()/upper_case() may modify strings incorrectly. I checked with hilfe:
```
> upper_case("\341\341");
(18) Result: "\301\301"
> lower_case("\307\308");
(19) Result: "\347\350"
```
So, before set/drop 5th bit, pike should check a character is in range 0x41-0x5a or 0x61-0x7a.
...Oops, sorry. I noticed pike is checking 6th bit. But please check 7th bit, too.Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5131Incorrect profiling of recursive functions using --with-profiling2012-01-07T04:05:03ZPeter BortasIncorrect profiling of recursive functions using --with-profilingImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5131
Reported by Jonas Wallden <jonasw@roxen.com>
Note the bogus 950 seconds reported for fn() and its children. The 191 msec for the function itself is correct though.
...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5131
Reported by Jonas Wallden <jonasw@roxen.com>
Note the bogus 950 seconds reported for fn() and its children. The 191 msec for the function itself is correct though.
```
Pike v7.8 release 371 running Hilfe v3.5 (Incremental Pike Frontend)
> class C { void fn(int x, int limit) { if (x < limit) fn(x + 1, limit); } };
> object c = C();
> gauge { c->fn(0, 10000); };
(1) Result: 0.191259
> get_profiling_info(C);
(2) Result: ({ /* 2 elements */
1,
([ /* 1 element */
"fn": ({ /* 3 elements */
10001,
950974,
191
})
])
})
```Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5122Autodoc extractor chokes on new getter/setter syntax2009-11-25T15:46:52ZPeter BortasAutodoc extractor chokes on new getter/setter syntaxImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5122
Reported by Stefan Wallström <stewa@roxen.com>
pike -x extract_autodoc on this works:
```
class X {
//! X class ...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5122
Reported by Stefan Wallström <stewa@roxen.com>
pike -x extract_autodoc on this works:
```
class X {
//! X class
int y = 2;
int `->x() { return y*3; }
void `->x=(int z) { y += z*5; }
};
```
but not on this:
```
class X {
//! X class
int y = 2;
int `x() { return y*3; }
void `x=(int z) { y += z*5; }
};
```Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5096Error in Oracle.Date._sprintf2009-11-17T14:17:01ZPeter BortasError in Oracle.Date._sprintfImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5096
Reported by Martin Stjernholm <mast@roxen.com>
The following error is clobbering thread dumps in Roxen:
```
OCIDateToText:code=-1:OCI-01858: a non-numeric character...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5096
Reported by Martin Stjernholm <mast@roxen.com>
The following error is clobbering thread dumps in Roxen:
```
OCIDateToText:code=-1:OCI-01858: a non-numeric character was found where a numeric was expected
___Oracle.Date: ___Oracle.Date()->_sprintf(79,mapping[1])
config_interface/actions/debug_info.pike (version 1.39):193: /var/local/roxen/www-dept-edit4.5/roxen/server-4.5.241/config_interface/actions/debug_info()->page_0(RequestID(debug_info.pike))
/.../
```
_sprintf with the 'O' flag has to be robust and cope with strange internal state in the object (pre-create() state etc).
I think the error is strange though, since it seems applicable to parsing rather than formatting.Pike 7.4Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5088MySQL module doesn't link on Windows2009-11-10T10:43:42ZPeter BortasMySQL module doesn't link on WindowsImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5088
Reported by Jonas Wallden <jonasw@roxen.com>
```
make[5]: Entering directory `/export/d1/dist/5.0/build/pike.win32_x86/build/modules/Mysql'
Linking Mysql
Creating...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5088
Reported by Jonas Wallden <jonasw@roxen.com>
```
make[5]: Entering directory `/export/d1/dist/5.0/build/pike.win32_x86/build/modules/Mysql'
Linking Mysql
Creating library module.lib and object module.exp
result.obj : error LNK2019: unresolved external symbol _STRTOL referenced in function _f_fetch_row
module.so : fatal error LNK1120: 1 unresolved externals
CL returned error code 2.
Linking failed:
/export/d1/dist/5.0/build/pike.win32_x86/pike/bin/smartlink /export/d1/dist/5.0/build/pike.win32_x86/pike/bin/smartlink rntcl -shared -g -MD -O2 -DDYNAMIC_MODULE -l/export/d1/dist/5.0/build/pike.win32_x86/build/pike -pdb:Mysql.pdb -o module.so mysql.o result.o -L/export/d1/dist/5.0/build/pike.win32_x86/build/bundles/lib32 -L/export/d1/dist/5.0/build/pike.win32_x86/build/bundles/lib/32 -L/export/d1/dist/5.0/build/pike.win32_x86/build/bundles/lib/. -lshell32 -lkernel32 -lws2_32 -ladvapi32 -llibmysql -lc
make[5]: *** [module.so] Error 1
```Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5086Segfault in type resolver2009-11-09T18:18:36ZPeter BortasSegfault in type resolverImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5086
Reported by Martin Stjernholm <mast@roxen.com>
The following minimized program dumps core:
```
class X
{
X bar();
}
class Y
{
constant X = global...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5086
Reported by Martin Stjernholm <mast@roxen.com>
The following minimized program dumps core:
```
class X
{
X bar();
}
class Y
{
constant X = global::X;
X foo();
}
```
Note that both foo and bar declarations have to exist with the type X in them to trig the bug.
In 7.6 there's instead a compilation error "Constant values may not have references to this" on the constant definition line.Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5085Segfault in mapping iterator2009-11-09T17:45:55ZPeter BortasSegfault in mapping iteratorImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5085
Reported by Martin Stjernholm <mast@roxen.com>
This dumps:
```
get_iterator(([1:1]))->_random();
```
Works in 7.6.Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5085
Reported by Martin Stjernholm <mast@roxen.com>
This dumps:
```
get_iterator(([1:1]))->_random();
```
Works in 7.6.Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5060SQL-typade kolumner, strängar i PIKE2009-11-24T10:35:41ZPeter BortasSQL-typade kolumner, strängar i PIKEImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5060
Reported by Henrik Stadler, Roxen <henrik.stadler@roxen.com>
Nytt API i Pike med castade strängar.Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5060
Reported by Henrik Stadler, Roxen <henrik.stadler@roxen.com>
Nytt API i Pike med castade strängar.Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/4868Sporadic crashes in opcode_F_ARROW2015-03-30T18:01:32ZPeter BortasSporadic crashes in opcode_F_ARROWImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4868
Reported by Jonas Wallden <jonasw@roxen.com>
This is a Pike on OS X/PPC problem that's been observed repeatedly over a long period of time in 7.8. It's happening dur...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4868
Reported by Jonas Wallden <jonasw@roxen.com>
This is a Pike on OS X/PPC problem that's been observed repeatedly over a long period of time in 7.8. It's happening during startup of Roxen CMS and normally disappears on next restart.
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x0000001e
```
Thread 0 Crashed:
0 <<00000000>> 0x03000df8 0 + 50335224
1 roxen 0x0001c5dc mega_apply + 192 (interpret.c:2218)
2 roxen 0x000dd05c object_index_no_free + 320 (object.c:1374)
3 roxen 0x00016368 opcode_F_ARROW + 104 (interpret_functions.h:1842)
4 <<00000000>> 0x03001a30 0 + 50338352
5 roxen 0x0001f860 apply_low_safe_and_stupid + 820 (interpret.c:2404)
6 roxen 0x0014e19c eval_low + 256 (las.c:5270)
7 roxen 0x00157fd8 optimize + 1956 (las.c:1988)
8 roxen 0x0015ed6c dooptcode + 132 (las.c:5196)
9 roxen 0x00005f6c yyparse + 9396 (language.yacc:1087)
10 roxen 0x001047dc run_pass2 + 736 (program.c:3628)
11 roxen 0x00106490 f_compilation_compile + 824 (program.c:8563)
12 roxen 0x0001b2f8 low_mega_apply + 2244 (apply_low.h:388)
13 roxen 0x0001c5c4 mega_apply + 168 (interpret.c:2211)
14 roxen 0x000eff2c f_compilation_env_compile + 124 (program.c:7677)
15 roxen 0x0001b2f8 low_mega_apply + 2244 (apply_low.h:388)
16 roxen 0x0001c5c4 mega_apply + 168 (interpret.c:2211)
17 <<00000000>> 0x01297c2c 0 + 19495980
18 roxen 0x000186f0 catching_eval_instruction + 160 (interpret.c:2246)
19 roxen 0x0001fb5c jump_opcode_F_CATCH + 412 (interpret_functions.h:1287)
20 <<00000000>> 0x007fe6bc 0 + 8382140
21 roxen 0x0001c5dc mega_apply + 192 (interpret.c:2218)
22 roxen 0x0014743c svalue_is_true + 308 (svalue.c:550)
23 roxen 0x00013c50 test_opcode_F_BRANCH_WHEN_ZERO + 96 (interpret_functions.h:1118)
24 <<00000000>> 0x010ea894 0 + 17737876
25 roxen 0x0001c5dc mega_apply + 192 (interpret.c:2218)
26 roxen 0x000dd05c object_index_no_free + 320 (object.c:1374)
27 <<00000000>> 0x010ed240 0 + 17748544
28 roxen 0x0001c5dc mega_apply + 192 (interpret.c:2218)
29 roxen 0x000dd05c object_index_no_free + 320 (object.c:1374)
30 roxen 0x000ebdf4 f_index + 132 (operators.c:181)
31 roxen 0x00154628 index_node + 1204 (las.c:1672)
32 roxen 0x0000c548 yyparse + 35472 (language.yacc:3897)
33 roxen 0x00105e84 run_pass1 + 912 (program.c:8030)
34 roxen 0x00106404 f_compilation_compile + 684 (program.c:8542)
35 roxen 0x0001b2f8 low_mega_apply + 2244 (apply_low.h:388)
36 roxen 0x0001c5c4 mega_apply + 168 (interpret.c:2211)
37 roxen 0x000eff2c f_compilation_env_compile + 124 (program.c:7677)
38 roxen 0x0001b2f8 low_mega_apply + 2244 (apply_low.h:388)
39 roxen 0x0001c5c4 mega_apply + 168 (interpret.c:2211)
40 <<00000000>> 0x01299658 0 + 19502680
41 roxen 0x000186f0 catching_eval_instruction + 160 (interpret.c:2246)
42 roxen 0x0001fb5c jump_opcode_F_CATCH + 412 (interpret_functions.h:1287)
43 <<00000000>> 0x021d7f00 0 + 35487488
44 roxen 0x0001c5dc mega_apply + 192 (interpret.c:2218)
45 roxen 0x000e6f90 o_cast + 2148 (operators.c:687)
46 roxen 0x000e7ac4 f_cast + 72 (operators.c:913)
47 <<00000000>> 0x02a39628 0 + 44275240
48 roxen 0x000186f0 catching_eval_instruction + 160 (interpret.c:2246)
49 roxen 0x0001fb5c jump_opcode_F_CATCH + 412 (interpret_functions.h:1287)
50 <<00000000>> 0x021bd72c 0 + 35378988
51 roxen 0x0001c5dc mega_apply + 192 (interpret.c:2218)
52 roxen 0x00053e8c backend_do_call_outs + 1024 (backend.cmod:876)
53 roxen 0x00055ee0 f_PollDeviceBackend_cq__backtick_28_29 + 1780 (backend.cmod:3406)
54 roxen 0x0001b2f8 low_mega_apply + 2244 (apply_low.h:388)
55 roxen 0x0001edb4 jump_opcode_F_CALL_FUNCTION_AND_POP + 100 (interpret_functions.h:2068)
56 <<00000000>> 0x012ab138 0 + 19575096
57 roxen 0x000186f0 catching_eval_instruction + 160 (interpret.c:2246)
58 roxen 0x0001fb5c jump_opcode_F_CATCH + 412 (interpret_functions.h:1287)
59 <<00000000>> 0x012a9d90 0 + 19570064
60 roxen 0x0001c5dc mega_apply + 192 (interpret.c:2218)
61 roxen 0x00002d04 main + 3096 (main.c:621)
62 roxen 0x00001d0c _start + 760
63 roxen 0x00001a10 start + 48
```
Thread 0 crashed with PPC Thread State 64:
srr0: 0x0000000003000df8 srr1: 0x100000000200f030 vrsave: 0x0000000000000000
cr: 0x42008444 xer: 0x0000000000000000 lr: 0x000000000000f3d0 ctr: 0x0000000003000df4
r0: 0x000000000001c5dc r1: 0x00000000bfff6df0 r2: 0x0000000000294660 r3: 0x0000000003000df4
r4: 0x00000000000000dc r5: 0x00000000000186a0 r6: 0x0000000000000006 r7: 0x0000000000000000
r8: 0x0000000000294660 r9: 0x0000000000294660 r10: 0x0000000000000013 r11: 0x000000000000000a
r12: 0x0000000000000012 r13: 0x000000000000011a r14: 0x0000000000000000 r15: 0x0000000000294660
r16: 0x00000000002ace14 r17: 0x0000000000000018 r18: 0x00000000ffffffff r19: 0x0000000001817ed0
r20: 0x0000000000000000 r21: 0x0000000000000000 r22: 0x0000000000000449 r23: 0x0000000001e0add8
r24: 0x0000000000000008 r25: 0x0000000000000000 r26: 0x0000000000000016 r27: 0x0000000001d8c9d8
r28: 0x00000000bfff6f50 r29: 0x0000000000294660 r30: 0x0000000003000df4 r31: 0x000000000000f3d0
The corresponding startup log for Roxen says:
Enabling all modules for Test Platform...
Start script terminating.
For historical reference, this is the crash I caught back in Sept 2008 (from InfoKOM 629415). The topmost stack frames are a bit different but opcode_F_ARROW and below is more or less identical:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000048bbc606
Crashed Thread: 0
```
Thread 0 Crashed:
0 ??? 0x023fb9d8 0 + 37730776
1 pike 0x00016a6c opcode_F_ARROW + 100 (interpret_functions.h:1843)
2 pike 0x0001f8f4 apply_low_safe_and_stupid + 816 (interpret.c:2391)
3 pike 0x0014ac54 eval_low + 252 (las.c:5270)
4 pike 0x00154ac0 optimize + 1976 (las.c:1989)
5 pike 0x0015b84c dooptcode + 128 (las.c:5196)
6 pike 0x000068e8 yyparse + 9408 (language.yacc:1080)
7 pike 0x00101a40 run_pass2 + 732 (program.c:8011)
8 pike 0x001036f4 f_compilation_compile + 820 (program.c:8474)
9 pike 0x0001b494 low_mega_apply + 2104 (apply_low.h:225)
10 pike 0x0001c67c mega_apply + 164 (interpret.c:2201)
11 pike 0x000ed3d8 f_compilation_env_compile + 120 (program.c:7589)
12 pike 0x0001b494 low_mega_apply + 2104 (apply_low.h:225)
13 pike 0x0001c67c mega_apply + 164 (interpret.c:2201)
14 ??? 0x0067cc28 0 + 6802472
15 pike 0x00018a20 catching_eval_instruction + 96 (interpret.c:2233)
16 pike 0x0001fc20 jump_opcode_F_CATCH + 456 (interpret_functions.h:1287)
[...]
```Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbström