pike issueshttps://git.lysator.liu.se/pikelang/pike/-/issues2010-11-11T11:11:49Zhttps://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ömhttps://git.lysator.liu.se/pikelang/pike/-/issues/4867-x monger --install does not work when started with a relative path2009-06-24T22:40:07ZPeter Bortas-x monger --install does not work when started with a relative pathImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4867
Reported by Arne Goedeke <roxen@laramies.com>
this happens when starting the pike binary using a relative path, e.g. doing ./pike/bin/pike inside a roxen installatio...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4867
Reported by Arne Goedeke <roxen@laramies.com>
this happens when starting the pike binary using a relative path, e.g. doing ./pike/bin/pike inside a roxen installation. The monger module uses master()->pike_file_name after changing the current working directory. If pike_file_name is a relative path the binary cannot be found after cd().Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/4855"Bad offset" when generating backtrace2009-06-17T17:42:07ZPeter Bortas"Bad offset" when generating backtraceImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4855
Reported by Jonas Wallden <jonasw@roxen.com>
```
class Abstract {
void foo();
}
void main()
{
Abstract()->foo();
}
ceylon:~ $ ~/pike/7.8/bin/pike ~/bad-offset...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4855
Reported by Jonas Wallden <jonasw@roxen.com>
```
class Abstract {
void foo();
}
void main()
{
Abstract()->foo();
}
ceylon:~ $ ~/pike/7.8/bin/pike ~/bad-offset.pike
Bad offset: pc:0x6d2194 program:0x6d2198 (0x0)
Calling undefined function.
/main()->Abstract: /main()->Abstract()->foo()
bad-offset.pike:7: /main()->main()
```Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/4851utime on a directory fails2015-03-27T17:43:33ZPeter Bortasutime on a directory failsImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4851
Reported by Tor Edvardsson <tor@roxen.com>
On Windows, utime on a directory gives the following
```
Pike v7.8 release 286 running Hilfe v3.5 (Incremental Pike Fron...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4851
Reported by Tor Edvardsson <tor@roxen.com>
On Windows, utime on a directory gives the following
```
Pike v7.8 release 286 running Hilfe v3.5 (Incremental Pike Frontend)
> object o = file_stat("test");
> utime("test", o->atime, o->mtime);
Compiler Warning: 1: Returning a void expression. Converted to zero.
utime(): Failed: Access denied
HilfeInput:1: HilfeInput()->___HilfeWrapper()
```
on a normal file this works
```
Pike v7.8 release 286 running Hilfe v3.5 (Incremental Pike Frontend)
> object o = file_stat("test.txt");
> utime("test.txt", o->atime, o->mtime);
Compiler Warning: 1: Returning a void expression. Converted to zero.
(1) Result: 0
```Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbström