pike issues
https://git.lysator.liu.se/pikelang/pike/-/issues
2022-08-28T23:32:32Z
https://git.lysator.liu.se/pikelang/pike/-/issues/2768
bogus `type mismatch' warning
2022-08-28T23:32:32Z
Peter Bortas
bogus `type mismatch' warning
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=2768
Reported by Robert J. Budzynski, Warsaw University, Dept. of Physics <Robert.Budzynski@fuw.edu.pl>
```
Running the following script (foo.pike):
#!/usr/local/bin/pike...
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=2768
Reported by Robert J. Budzynski, Warsaw University, Dept. of Physics <Robert.Budzynski@fuw.edu.pl>
```
Running the following script (foo.pike):
#!/usr/local/bin/pike -w
#pragma strict_types
int main(int ac, array(string) av)
{
write(version()+"\n");
int(-1..1) foo=0;
if(ac>1)
{
if(av[1]=="1") foo++;
else foo--;
}
switch(foo)
{
case 1: write("foo is one\n"); break;
case -1: write("foo is minus one\n"); break;
case 0: write("foo is zero\n"); break;
default: write("Bah!\n");
}
return 0;
}
// script ends here
```
I obtain the output
```
$ ./foo.pike xxx
foo.pike:15: Warning: Type mismatch in case.
foo.pike:15: Warning: Expected: int(-1..1)
foo.pike:15: Warning: Got : int
Pike v7.3 release 14
foo is minus one
```
Pike 7.4
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström
https://git.lysator.liu.se/pikelang/pike/-/issues/8021
random_string() loses references to the empty string.
2022-08-29T17:40:51Z
Peter Bortas
random_string() loses references to the empty string.
Imported from https://youtrack.roxen.com/issue/PIKE-21
Reported by @grubba
Blocking [PIKE-20](#8020)
Calling random_string() with 0 caused the empty string
to lose a reference.
Imported from https://youtrack.roxen.com/issue/PIKE-21
Reported by @grubba
Blocking [PIKE-20](#8020)
Calling random_string() with 0 caused the empty string
to lose a reference.
https://git.lysator.liu.se/pikelang/pike/-/issues/8022
The compiler leaks types.
2022-08-29T17:40:51Z
Peter Bortas
The compiler leaks types.
Imported from https://youtrack.roxen.com/issue/PIKE-22
Reported by @grubba
Blocking [PIKE-20](#8020)
The resulting type from resolving the auto return type
leaked when there was more than one return statement.
Imported from https://youtrack.roxen.com/issue/PIKE-22
Reported by @grubba
Blocking [PIKE-20](#8020)
The resulting type from resolving the auto return type
leaked when there was more than one return statement.
https://git.lysator.liu.se/pikelang/pike/-/issues/8023
The compiler crashes when compiling some files.
2022-08-29T17:40:51Z
Peter Bortas
The compiler crashes when compiling some files.
Imported from https://youtrack.roxen.com/issue/PIKE-23
Reported by @grubba
Blocking [PIKE-20](#8020)
Recovers from issue where the compiler context could come out of
sync due to syntax errors in nested classes. This could in turn
lead...
Imported from https://youtrack.roxen.com/issue/PIKE-23
Reported by @grubba
Blocking [PIKE-20](#8020)
Recovers from issue where the compiler context could come out of
sync due to syntax errors in nested classes. This could in turn
lead to various obscure errors, some of which were fatal.
https://git.lysator.liu.se/pikelang/pike/-/issues/8024
Fix NULL dereference by count_memory() when running --with-dmalloc.
2022-08-29T17:40:51Z
Peter Bortas
Fix NULL dereference by count_memory() when running --with-dmalloc.
Imported from https://youtrack.roxen.com/issue/PIKE-24
Reported by @grubba
Blocking [PIKE-20](#8020)
Don't attempt to get gc markers when the gc isn't active.
Imported from https://youtrack.roxen.com/issue/PIKE-24
Reported by @grubba
Blocking [PIKE-20](#8020)
Don't attempt to get gc markers when the gc isn't active.
https://git.lysator.liu.se/pikelang/pike/-/issues/8025
_Roxen.HeaderParser leaks mappings in feed().
2022-08-29T17:40:51Z
Peter Bortas
_Roxen.HeaderParser leaks mappings in feed().
Imported from https://youtrack.roxen.com/issue/PIKE-25
Reported by @grubba
Blocking [PIKE-20](#8020)
The mapping intended to hold the parsed headers from feed()
leaked if the HTTP headers were malformed.
Imported from https://youtrack.roxen.com/issue/PIKE-25
Reported by @grubba
Blocking [PIKE-20](#8020)
The mapping intended to hold the parsed headers from feed()
leaked if the HTTP headers were malformed.
https://git.lysator.liu.se/pikelang/pike/-/issues/8026
Fix fatal "Didn't find gc marker as expected" for types.
2022-08-29T17:40:51Z
Peter Bortas
Fix fatal "Didn't find gc marker as expected" for types.
Imported from https://youtrack.roxen.com/issue/PIKE-26
Reported by @grubba
Blocking [PIKE-20](#8020)
All types didn't have markers at cleanup time.
Imported from https://youtrack.roxen.com/issue/PIKE-26
Reported by @grubba
Blocking [PIKE-20](#8020)
All types didn't have markers at cleanup time.
https://git.lysator.liu.se/pikelang/pike/-/issues/8027
Fix issue where strings intermittently get corrupted by the Image module.
2022-08-29T17:40:51Z
Peter Bortas
Fix issue where strings intermittently get corrupted by the Image module.
Imported from https://youtrack.roxen.com/issue/PIKE-27
Reported by @grubba
Blocking [PIKE-20](#8020)
If a dynamically allocated string (eg "Random.Deterministic") that had
an active substring (eg "Deterministic") later got replaced wi...
Imported from https://youtrack.roxen.com/issue/PIKE-27
Reported by @grubba
Blocking [PIKE-20](#8020)
If a dynamically allocated string (eg "Random.Deterministic") that had
an active substring (eg "Deterministic") later got replaced with a
statically allocated string, the substring would point to freed memory.
Fixes intermittent failures to resolve "Random.Deterministic" in from
Image.Image()->test(), as well as the fatal "Shared string is not zero
terminated properly." from eg _verify_internals().
https://git.lysator.liu.se/pikelang/pike/-/issues/8028
The preprocessor leaks macro names on failed expansion.
2022-08-29T17:40:51Z
Peter Bortas
The preprocessor leaks macro names on failed expansion.
Imported from https://youtrack.roxen.com/issue/PIKE-28
Reported by @grubba
Blocking [PIKE-20](#8020)
The name of the macro being expanded could leak if there was an error in its list of parameters.
Imported from https://youtrack.roxen.com/issue/PIKE-28
Reported by @grubba
Blocking [PIKE-20](#8020)
The name of the macro being expanded could leak if there was an error in its list of parameters.
https://git.lysator.liu.se/pikelang/pike/-/issues/8030
Strange number of references to a mapping.
2022-08-29T17:40:51Z
Peter Bortas
Strange number of references to a mapping.
Imported from https://youtrack.roxen.com/issue/PIKE-30
Reported by @grubba
Blocking [PIKE-20](#8020)
````
Doing tests in testsuite (11914 tests, pid 12730)
**Block: 0xd0f0ded0c0 Type: mapping Refs: -253832321
*******************
/ho...
Imported from https://youtrack.roxen.com/issue/PIKE-30
Reported by @grubba
Blocking [PIKE-20](#8020)
````
Doing tests in testsuite (11914 tests, pid 12730)
**Block: 0xd0f0ded0c0 Type: mapping Refs: -253832321
*******************
/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/src/mapping.c:67: Fatal error:
really free mapping on mapping with -253832321 refs.
No stack - no backtrace.
Aborted (core dumped)
Testing vtables and scope access: 8:19264
/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/src/testsuite.in:5643: Test 1000 (shift 1) (CRNL) failed.
1: mixed a() {
2: Stdio.write_file ("testsuite_test.pike", #"\
3: int main()
4: {
5: Thread.Mutex m = Thread.Mutex();
6: Thread.MutexKey l = m->lock();
7: Thread.thread_create (lambda () {m->lock(); exit (0);});
8: call_out (destruct, 0, l);
9: return -1;
10: }");
11: return Process.system (RUNPIKE +" testsuite_test.pike");
12: ; }
13: mixed b() { return 0; }
o->a(): 134
o->b(): 0
````
https://git.lysator.liu.se/pikelang/pike/-/issues/8034
Standards.PKCS.parse_public_key() rejects valid public keys.
2022-08-29T17:40:51Z
Peter Bortas
Standards.PKCS.parse_public_key() rejects valid public keys.
Imported from https://youtrack.roxen.com/issue/PIKE-34
Reported by @grubba
Blocking [PIKE-20](#8020)
This issue was due to the code expecting the public key data to be in an ASN.1 OCTET STRING (as it is for private keys), but is suppo...
Imported from https://youtrack.roxen.com/issue/PIKE-34
Reported by @grubba
Blocking [PIKE-20](#8020)
This issue was due to the code expecting the public key data to be in an ASN.1 OCTET STRING (as it is for private keys), but is supposed to be in a BIT STRING.
https://git.lysator.liu.se/pikelang/pike/-/issues/8015
Filesystem.Monitor: Poll accelerated monitors too.
2022-08-30T14:04:03Z
Peter Bortas
Filesystem.Monitor: Poll accelerated monitors too.
Imported from https://youtrack.roxen.com/issue/PIKE-15
Reported by @grubba
Related to [PIKE-19](#8019),now #8019
Both the Inotify and FSEvents APIs claim that they support
notifications on eg network file system...
Imported from https://youtrack.roxen.com/issue/PIKE-15
Reported by @grubba
Related to [PIKE-19](#8019),now #8019
Both the Inotify and FSEvents APIs claim that they support
notifications on eg network file systems, and while they will
succeed in notifying on changes performed by the local host
on such file systems, they will not on changes performed by
other hosts. To avoid missing such changes such monitors
need to be scanned too.
https://git.lysator.liu.se/pikelang/pike/-/issues/10048
Extend type-checker to use lfun types when checking efun calls with objects.
2022-09-08T13:02:34Z
Henrik (Grubba) Grubbström
Extend type-checker to use lfun types when checking efun calls with objects.
Currently the type checker resolves typical efun calls with objects to returning mixed, even though it may have knowledge about the object implementing the corresponding lfun(s).
Now that #10033 has been fixed, we get quite a few warnin...
Currently the type checker resolves typical efun calls with objects to returning mixed, even though it may have knowledge about the object implementing the corresponding lfun(s).
Now that #10033 has been fixed, we get quite a few warnings due to operators returning mixed.
https://git.lysator.liu.se/pikelang/pike/-/issues/10054
Type mark stack underflow
2022-09-21T10:01:20Z
Henrik (Grubba) Grubbström
Type mark stack underflow
`compiler_bug.pike`:
```
int(0..0) array(mapping) foobar() {
return ({});
}
```
```
$ pike --version
Pike v8.0 release 702 Copyright © 1994-2018 Linköping University
Pike comes with ABSOLUTELY NO WARRANTY; This is free software and you...
`compiler_bug.pike`:
```
int(0..0) array(mapping) foobar() {
return ({});
}
```
```
$ pike --version
Pike v8.0 release 702 Copyright © 1994-2018 Linköping University
Pike comes with ABSOLUTELY NO WARRANTY; This is free software and you are
welcome to redistribute it under certain conditions; read the files
COPYING and COPYRIGHT in the Pike distribution for more details.
$ pike compiler_bug.pike
compiler_bug.pike:1:array is a reserved word.
/var/tmp/portage/dev-lang/pike-8.0.702/work/Pike-v8.0.702/src/pike_types.c:707: Fatal error:
Type mark stack underflow
/var/tmp/portage/dev-lang/pike-8.0.702/work/Pike-v8.0.702/src/pike_types.c:707: Fatal error:
Type mark stack underflow
Aborted
```
Pike 7.8
https://git.lysator.liu.se/pikelang/pike/-/issues/10001
The type for predef::`&() is wrong is some cases.
2022-10-06T12:34:15Z
Henrik (Grubba) Grubbström
The type for predef::`&() is wrong is some cases.
typeof(17 & 18) gives int(17)|int(18) instead of int(16).
typeof(17 & 18) gives int(17)|int(18) instead of int(16).
Pike 9.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10096
aggregate_mapping() type checker performance issue
2022-10-18T15:45:48Z
Henrik (Grubba) Grubbström
aggregate_mapping() type checker performance issue
```
Pike v8.1 release 18 running Hilfe v3.5 (Incremental Pike Frontend)
> int t = gethrtime(); typeof(([ 1: `==, 2:`<=, 4: `< ])); gethrtime() - t;
(1) Result: mapping(int(1..2) | int(4):function(int | float ... : int(1bit)) | function(s...
```
Pike v8.1 release 18 running Hilfe v3.5 (Incremental Pike Frontend)
> int t = gethrtime(); typeof(([ 1: `==, 2:`<=, 4: `< ])); gethrtime() - t;
(1) Result: mapping(int(1..2) | int(4):function(int | float ... : int(1bit)) | function(string ... : int(1bit)) | function(program | type(mixed), program | type(mixed), program | type(mixed) ... : int(1bit)) | scope(0,function(int | float, int | float, int | float ... : int(1bit)) | function(($0=array | mapping | multiset | string), $0, $0 ... : int(1bit)) | function(function | object | program, mixed, mixed ... : int(1bit)) | function(mixed, function | object | program, mixed ... : int(1bit)) | function(type(mixed), type(mixed), function | program | type(mixed) ... : int(1bit)) | function(($0=array | mapping | multiset | string), ~$0 ... : zero)) | ~function(~mixed ... : mixed) & function(mixed ... : int(1bit)))
(2) Result: 40760
> int t = gethrtime(); typeof(([ 1:`==, 2: `<=, 4: `<, 5: `> ])); gethrtime() - t;
(3) Result: mapping(int(1..2) | int(4..5):function(int | float ... : int(1bit)) | function(string ... : int(1bit)) | function(program | type(mixed), program | type(mixed), program | type(mixed) ... : int(1bit)) | scope(0,function(int | float, int | float, int | float ... : int(1bit)) | function(($0=array | mapping | multiset | string), $0, $0 ... : int(1bit)) | function(function | object | program, mixed, mixed ... : int(1bit)) | function(mixed, function | object | program, mixed ... : int(1bit)) | function(type(mixed), type(mixed), function | program | type(mixed) ... : int(1bit)) | function(($0=array | mapping | multiset | string), ~$0 ... : zero)) | ~function(~mixed ... : mixed) & function(mixed ... : int(1bit)))
(4) Result: 42070381
```
The time taken for the second statement is ~42 seconds (~1000 times slower than the first).
Doing
```
> int t = gethrtime(); typeof(([ 1:`==, 2: `<=, 3: `!=, 4: `<, 5: `> ])); gethrtime() - t;
```
essentially hangs the compiler.
Pike 9.0
https://git.lysator.liu.se/pikelang/pike/-/issues/7684
Feed: Recursive mutex locks
2022-11-06T09:16:07Z
Peter Bortas
Feed: Recursive mutex locks
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7684
Reported by Marcus Wellhardh <wellhard@roxen.com>
Noticed this backtrace when debugging [RT 26947]:
```
: Server start command:
: /usr/local/...
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7684
Reported by Marcus Wellhardh <wellhard@roxen.com>
Noticed this backtrace when debugging [RT 26947]:
```
: Server start command:
: /usr/local/roxen/server-6.0.130/bin/roxen
: -DLOG_GC_TIMESTAMPS
: -DINHIBIT_INOTIFY_MONITOR
: -DDEBUG_ADMANAGER
: -DRAM_CACHE
: -DHTTP_COMPRESSION
: -M/usr/local/roxen/server-6.0.130/etc/modules
: -M/usr/local/roxen/local/pike_modules
: -I/usr/local/roxen/server-6.0.130/etc/include
: -I/usr/local/roxen/server-6.0.130/base_server
: -P/usr/local/roxen/server-6.0.130/base_server
: -P/usr/local/roxen/server-6.0.130
: base_server/roxenloader.pike
: --pid-file=../configurations/_roxen_pid
pike/lib/modules/___Oracle.so:-: Warning: Failed to load library: libclntsh.so.12.1: kan inte öppna delad objektfil: Filen eller katalogen finns inte
pike/lib/modules/Odbc.so:-: Warning: Failed to load library: libodbc.so.2: kan inte öppna delad objektfil: Filen eller katalogen finns inte
5:00:02 : Support for IPv6 enabled.
0m 0.0s : Adding package /usr/local/roxen/local.
: Adding package packages/feedimport (Version 6.0.130).
: Adding package packages/imageproc (Version 6.0.130).
: Adding package packages/logview (Version 6.0.130).
: Adding package packages/print (Version 6.0.130).
5:00:02 : Adding package packages/search (Version 6.0.130).
0m 0.1s : Adding package packages/sitebuilder (Version 6.0.130).
: -----------------------------------------------------------------
: Pike version: Pike v8.0 release 232
: Product version: Roxen EP 6.0.130-r1
: Operating system: Linux 3.10.0-327.13.1.el7.x86_64 (x86_64)
5:00:02 : Starting MySQL ... Was running 10.1.12-MariaDB [10.1ms]
0m 0.1s : Installed patches:
: 2016-04-20T143129
: 2016-04-22T141034
: 2016-04-22T141702
: 2016-04-22T142057
5:00:02 : 2016-04-25T103337
0m 0.1s : 2016-04-25T112131
: 2016-04-25T112359
: 2016-04-28T160526
: 2016-04-29T103046
:
5:00:02 : Loading Pike modules ... Done [303.0ms]
0m 0.6s : Loading Roxen ...
: Server version ... 6.0.130
: Dist version ... 6.0.130
: Platform ... rhel7_x86_64
: Product code ... rep
5:00:03 : Done [522.3ms]
```
[...]
```
: GC runs at Sun May 8 09:11:12 2016
: GC done after 159117us
9:11:13 : Internal server error: Recursive mutex locks!
-:1: _static_modules.Builtin()->mutex()->lock()
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:221: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/2861ead4434a45ac83fbde5823204688", 7, next: Sun May 8 06:39:09 2016, st: 0)->unregister_path(1)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1100: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/2861ead4434a45ac83fbde5823204688", 7, next: Sun May 8 06:39:09 2016, st: 0)->unregister_path(1)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:722: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/2861ead4434a45ac83fbde5823204688", 7, next: Sun May 8 06:39:09 2016, st: 0)->destroy()
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:227: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/346a6eaebe9749a88c8ac6b4662ecb31/0db6bd0f667a476199d3f65d3c86957f-f9490.jpg", 15, next: Sun May 8 10:01:12 2016, st: Stat(-rw-r--r-- 2698881
b))->`>(1462716675)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:226: Monitor("/usr/local/roxen/feeds/wirefeeds/universal/XML/notas_N", 15, next: Sun May 8 09:11:15 2016, st: Stat(drwxr-xr-x 77824b))->`<(,,,0)
pike/lib/modules/ADT.pmod/Heap.pike:65: ADT.Heap(14618 elements, top: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/ebb750fff66e4d5ab3250f0ee50b48fc/80f3e1042f963517980f6a7067008cd4-6b2c1.jpg", 15, next: Sun May 8 09:11:06 2016, st: Stat(-rw-r--r--
783813b)))->adjust_down(1535)
pike/lib/modules/ADT.pmod/Heap.pike:143: ADT.Heap(14618 elements, top: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/ebb750fff66e4d5ab3250f0ee50b48fc/80f3e1042f963517980f6a7067008cd4-6b2c1.jpg", 15, next: Sun May 8 09:11:06 2016, st: Stat(-rw-r--r-
- 783813b)))->adjust(,,,0)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1233: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->adjust_monitor(@0)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:437: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/346a6eaebe9749a88c8ac6b4662ecb31/0db6bd0f667a476199d3f65d3c86957f-f9490.jpg", 15, next: Sun May 8 10:01:12 2016, st: Stat(-rw-r--r-- 2698881
b))->update(Stat(-rw-r--r-- 2698881b))
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:583: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/346a6eaebe9749a88c8ac6b4662ecb31/0db6bd0f667a476199d3f65d3c86957f-f9490.jpg", 15, next: Sun May 8 10:01:12 2016, st: Stat(-rw-r--r-- 2698881
b))->check(UNDEFINED)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1420: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->check_monitor(@0,UNDEFINED)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1524: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->check(UNDEFINED,1000,([]))
packages/feedimport/modules/feed-import.pike (ef807040):1508: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->check(UNDEFINED,1000,@1=([]))
packages/feedimport/modules/feed-import.pike (ef807040):2245: RoxenModule(EP/feed-import#0)->feed_monitor->periodic_scan()
packages/feedimport/modules/feed-import.pike (ef807040):2295: RoxenModule(EP/feed-import#0)->feed_monitor->periodic_scan_dispatch()
```
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström
https://git.lysator.liu.se/pikelang/pike/-/issues/8031
Web.SocketIO fails with fatal "Internal error: Not allowed to add more identi...
2022-11-06T09:23:56Z
Peter Bortas
Web.SocketIO fails with fatal "Internal error: Not allowed to add more identifiers during second compiler pass."
Imported from https://youtrack.roxen.com/issue/PIKE-31
Reported by @grubba
Blocking [PIKE-20](#8020), now #8020
````
/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/src/program.c:6791:...
Imported from https://youtrack.roxen.com/issue/PIKE-31
Reported by @grubba
Blocking [PIKE-20](#8020), now #8020
````
/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/src/program.c:6791: Fatal error:
Internal error: Not allowed to add more identifiers during second compiler pass.
Added identifier: "register"
Backtrace at time of fatal:
-:1: PikeCompiler("", UNDEFINED, -1, -1, target, placeholder)->compile()
-:1: DefaultCompilerEnvironment->compile(PikeCompiler("", UNDEFINED, -1, -1, target, placeholder))
test-install/pike/8.1.11/lib/master.pike:670: compile_string("/*\n\40*\40Clean-room\40Socket.IO\40implementation\40for\40Pike.\n\40*/\n\n//!\40This\40is\40a"+[22574]+"\40\40\40return\40res;\n\40\40}\n}\n","/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/P"+[90]+"eb.pmod/SocketIO.pmod",0,,,2)
test-install/pike/8.1.11/lib/master.pike:1476: master()->low_findprog("/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/build/linux-4.11.0-2-amd64-x86_64/test-install/pike/8.1.11/lib/modules/Web.pmod/SocketIO.pmod","",0,1)
test-install/pike/8.1.11/lib/master.pike:1603: master()->findprog("/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/build/linux-4.11.0-2-amd64-x86_64/test-install/pike/8.1.11/lib/modules/Web.pmod/SocketIO.pmod",".pmod",0,1)
test-install/pike/8.1.11/lib/master.pike:1639: master()->low_cast_to_program("/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/build/linux-4.11.0-2-amd64-x86_64/test-install/pike/8.1.11/lib/modules/Web.pmod/SocketIO",0,0,1)
test-install/pike/8.1.11/lib/master.pike:1917: master()->low_cast_to_object("/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/build/linux-4.11.0-2-amd64-x86_64/test-install/pike/8.1.11/lib/modules/Web.pmod/SocketIO.pmod",0,0)
test-install/pike/8.1.11/lib/master.pike:2145: Web->low_ind("SocketIO",UNDEFINED)
test-install/pike/8.1.11/lib/master.pike:2223: Web->ind("SocketIO")
test-install/pike/8.1.11/lib/master.pike:2259: Web->`[]("SocketIO")
test-install/pike/8.1.11/lib/master.pike:2443: Web->ind("SocketIO")
test-install/pike/8.1.11/lib/master.pike:2498: Web->`[]("SocketIO")
test-install/pike/8.1.11/lib/master.pike:3139: master()->resolv("Web.SocketIO",UNDEFINED,UNDEFINED)
/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/src/test_resolve.pike:45: /main()->test_resolv("/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/build/linux-4.11.0-2-amd64-x86_64/test-install/pike/8.1.11/lib/modules/Web.pmod/SocketIO.pmod",158,UNDEFINED)
/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/src/test_resolve.pike:134: /main()->test_dir("/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/build/linux-4.11.0-2-amd64-x86_64/test-install/pike/8.1.11/lib/modules/Web.pmod",158,UNDEFINED)
/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/src/test_resolve.pike:92: /main()->test_dir("/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/build/linux-4.11.0-2-amd64-x86_64/test-install/pike/8.1.11/lib/modules",158,UNDEFINED)
/home/hungerf3/xeno/xenoclient/[pike-8](#8008).1/cruncher.ofdoom.com/buildtmp/Pike-v8.1-snapshot/src/test_resolve.pike:158: /main()->main()
No result from subprocess (died of signal SIGABRT)
````
Pike 9.0
https://git.lysator.liu.se/pikelang/pike/-/issues/8055
Segmentation fault in backend_find_call_out_info
2022-11-06T12:19:26Z
Peter Bortas
Segmentation fault in backend_find_call_out_info
Imported from https://youtrack.roxen.com/issue/PIKE-55
Reported by Marcus Wellhardh <wellhard@roxen.com>
Got the following segmentation fault using roxen-6.2.77-test-ep-rhel7_x86_64.sh which in reality is version 6.2.78.
Server versio...
Imported from https://youtrack.roxen.com/issue/PIKE-55
Reported by Marcus Wellhardh <wellhard@roxen.com>
Got the following segmentation fault using roxen-6.2.77-test-ep-rhel7_x86_64.sh which in reality is version 6.2.78.
Server version:
```
: Server start command:
: /usr/local/roxen/server-6.2.78/bin/roxen
: -DLOG_GC_TIMESTAMPS
: -DLOG_GC_CYCLES
: -DLOG_GC_HISTOGRAM
: -DREP_DEBUG_DEF_CACHING
: -DRAM_CACHE
: -DHTTP_COMPRESSION
: -M/usr/local/roxen/server-6.2.78/etc/modules
: -M/usr/local/roxen/local/pike_modules
: -I/usr/local/roxen/server-6.2.78/etc/include
: -I/usr/local/roxen/server-6.2.78/base_server
: -P/usr/local/roxen/server-6.2.78/base_server
: -P/usr/local/roxen/server-6.2.78
: base_server/roxenloader.pike
: --pid-file=../configurations/_roxen_pid
```
GDB:
```
(gdb) bt
#0 0x000000000044b2fa in backend_find_call_out_info (me# me@entry
0x8d6758, fun=0x7ffff7e631f0) at /home/dist/tmp/build/pike.srcbuild/../pike/src/backend.cmod:1138
#1 0x000000000044c465 in f_Backend_remove_call_out (args=<optimized out>) at /home/dist/tmp/build/pike.srcbuild/../pike/src/backend.cmod:1289
#2 0x0000000000429fd9 in low_mega_apply (type# APPLY_SVALUE, type@entry
APPLY_SVALUE_STRICT, args# 1, arg1
<optimized out>, arg2# arg2@entry
0x0) at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/apply_low.h:221
#3 0x000000000042a74d in jump_opcode_F_APPLY_AND_POP (arg1=<optimized out>) at /home/dist/tmp/build/pike.srcbuild/../pike/src/interpret_functions.h:2449
#4 0x00007fffe95507d9 in ?? ()
#5 0x00000000011ed2f0 in ?? ()
#6 0x0000000000b28f90 in ?? ()
#7 0x00007ffff0236000 in ?? ()
#8 0x00007ffff7e631c0 in ?? ()
#9 0x0000000000b1e848 in ?? ()
#10 0x00000000008e3820 in ?? ()
#11 0x00007fffeb5fe593 in ?? ()
#12 0x000000000041d636 in eval_instruction (pc=0x7fffeb5fe593 "UH\211\345AWAVAUATSH\203\354\bI\211\377M\213w H\215\005\365\377\377\377I\211F(M\213/I\213VpI\213v`L\211\357H\017\267R\002\307\300\200\371K")
at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/interpret.c:1711
#13 catching_eval_instruction (pc# 0x7fffeb5fe593 "UH\211\345AWAVAUATSH\203\354\bI\211\377M\213w H\215\005\365\377\377\377I\211F(M\213/I\213VpI\213v`L\211\357H\017\267R\002\307\300\200\371K", pc@entry
0x7fffffffd040 "\223\345_\353\377\177")
at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/interpret.c:2754
#14 0x000000000041fc50 in inter_return_opcode_F_CATCH (addr=0x7fffffffd040 "\223\345_\353\377\177") at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/interpret.c:1295
#15 0x00007fffeb5fe57b in ?? ()
#16 0x0000000007245820 in ?? ()
#17 0xfffffffffffffff0 in ?? ()
#18 0x000000005a65d8e6 in ?? ()
#19 0x000000005a65d8e5 in ?? ()
#20 0x0000000000000001 in ?? ()
#21 0x0000000000000001 in ?? ()
#22 0x00000000008d6758 in ?? ()
#23 0x000000000042df96 in eval_instruction (pc=<optimized out>) at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/interpret.c:1711
#24 mega_apply (arg2# 0x0, arg1
0x0, args# args@entry
9320480, type=APPLY_STACK) at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/interpret.c:2695
#25 f_call_function (args# args@entry
9320480) at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/interpret.c:2775
#26 0x000000000044c244 in backend_do_call_outs (me# 0x7ffff7e63180, me@entry
0x8d6758) at /home/dist/tmp/build/pike.srcbuild/../pike/src/backend.cmod:1048
#27 0x000000000044ff39 in pdb_low_backend_once (pdb# 0x8d6740, timeout
timeout@entry=0x7fffffffd4f0) at /home/dist/tmp/build/pike.srcbuild/../pike/src/backend.cmod:4177
#28 0x00000000004501b0 in f_PollDeviceBackend_cq__backtick_28_29 (args=<optimized out>) at /home/dist/tmp/build/pike.srcbuild/../pike/src/backend.cmod:4310
#29 0x0000000000429fd9 in low_mega_apply (type# APPLY_SVALUE, type@entry
APPLY_STACK, args# 1, arg1
<optimized out>, arg1@entry# 0x0, arg2
arg2@entry=0x0) at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/apply_low.h:221
#30 0x000000000042a99e in jump_opcode_F_CALL_FUNCTION_AND_POP () at /home/dist/tmp/build/pike.srcbuild/../pike/src/interpret_functions.h:2452
#31 0x00007ffff000e47c in ?? ()
#32 0x000000000000005f in ?? ()
#33 0x0000000000965ba0 in ?? ()
#34 0x00007ffff0236000 in ?? ()
#35 0x00007ffff7e63120 in ?? ()
#36 0x00000000008caef8 in ?? ()
#37 0x00000000008e3820 in ?? ()
#38 0x00007ffff000c2a4 in ?? ()
#39 0x000000000041d636 in eval_instruction (pc=0x7ffff000c2a4 "UH\211\345AWAVAUATSH\203\354\bI\211\377M\213w H\215\005\365\377\377\377I\211F(M\213/I\213NpH\213I H\213\211\230") at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/interpret.c:1711
#40 catching_eval_instruction (pc# 0x7ffff000c2a4 "UH\211\345AWAVAUATSH\203\354\bI\211\377M\213w H\215\005\365\377\377\377I\211F(M\213/I\213NpH\213I H\213\211\230", pc@entry
0x7ffff7e63240 "") at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/interpret.c:2754
#41 0x000000000041fc50 in inter_return_opcode_F_CATCH (addr=0x7ffff7e63240 "") at /tmp/dist/6.0/pike.rhel7_x86_64/pike/src/interpret.c:1295
#42 0x00007ffff000c28c in ?? ()
#43 0x00007fffffffda14 in ?? ()
#44 0x0000000000000001 in ?? ()
#45 0x00000000005d460d in __dso_handle ()
#46 0x00007fffffffda50 in ?? ()
#47 0x0000000000000000 in ?? ()
(gdb) disassemble 0x000000000044b2fa
Dump of assembler code for function backend_find_call_out_info:
0x000000000044b270 <+0>: push %r12
0x000000000044b272 <+2>: mov 0x403d57(%rip),%rax # 0x84efd0 <Pike_interpreter_pointer>
0x000000000044b279 <+9>: mov %rdi,%r12
0x000000000044b27c <+12>: push %rbp
0x000000000044b27d <+13>: push %rbx
0x000000000044b27e <+14>: mov (%rax),%rbp
0x000000000044b281 <+17>: mov 0x100(%rdi),%eax
0x000000000044b287 <+23>: test %eax,%eax
0x000000000044b289 <+25>: je 0x44b34f <backend_find_call_out_info+223>
0x000000000044b28f <+31>: cmpw $0x8,(%rsi)
0x000000000044b293 <+35>: mov %rsi,%rbx
0x000000000044b296 <+38>: je 0x44b360 <backend_find_call_out_info+240>
0x000000000044b29c <+44>: mov %rbx,%rdi
0x000000000044b29f <+47>: callq 0x540640 <hash_svalue>
0x000000000044b2a4 <+52>: mov 0x114(%r12),%ecx
0x000000000044b2ac <+60>: mov %eax,%esi
0x000000000044b2ae <+62>: xor %edx,%edx
0x000000000044b2b0 <+64>: mov %rsi,%rax
0x000000000044b2b3 <+67>: div %rcx
0x000000000044b2b6 <+70>: shl $0x4,%rdx
0x000000000044b2ba <+74>: add 0x120(%r12),%rdx
0x000000000044b2c2 <+82>: mov 0x8(%rdx),%rcx
0x000000000044b2c6 <+86>: test %rcx,%rcx
0x000000000044b2c9 <+89>: je 0x44b43b <backend_find_call_out_info+459>
0x000000000044b2cf <+95>: mov 0x403cfa(%rip),%r8 # 0x84efd0 <Pike_interpreter_pointer>
0x000000000044b2d6 <+102>: mov (%r8),%rdx
0x000000000044b2d9 <+105>: jmp 0x44b2e9 <backend_find_call_out_info+121>
0x000000000044b2db <+107>: nopl 0x0(%rax,%rax,1)
0x000000000044b2e0 <+112>: mov 0x20(%rcx),%rcx
0x000000000044b2e4 <+116>: test %rcx,%rcx
0x000000000044b2e7 <+119>: je 0x44b34a <backend_find_call_out_info+218>
0x000000000044b2e9 <+121>: cmp %rsi,0x8(%rcx)
0x000000000044b2ed <+125>: jne 0x44b2e0 <backend_find_call_out_info+112>
0x000000000044b2ef <+127>: mov 0x40(%rcx),%rax
0x000000000044b2f3 <+131>: lea 0x10(%rdx),%rdi
0x000000000044b2f7 <+135>: mov %rdi,(%r8)
=> 0x000000000044b2fa <+138>: addl $0x1,(%rax)
0x000000000044b2fd <+141>: movq $0x8,(%rdx)
0x000000000044b304 <+148>: mov %rax,0x8(%rdx)
0x000000000044b308 <+152>: mov %rdi,%rdx
0x000000000044b30b <+155>: jmp 0x44b2e0 <backend_find_call_out_info+112>
0x000000000044b30d <+157>: nopl (%rax)
0x000000000044b310 <+160>: mov -0x8(%rdx),%r12
0x000000000044b314 <+164>: mov %rbx,%rdi
0x000000000044b317 <+167>: mov 0x28(%r12),%rsi
0x000000000044b31c <+172>: callq 0x541370 <is_eq>
0x000000000044b321 <+177>: test %eax,%eax
0x000000000044b323 <+179>: jne 0x44b3b0 <backend_find_call_out_info+320>
0x000000000044b329 <+185>: mov 0x403ca0(%rip),%rax # 0x84efd0 <Pike_interpreter_pointer>
0x000000000044b330 <+192>: mov (%rax),%rcx
0x000000000044b333 <+195>: lea -0x10(%rcx),%rdx
0x000000000044b337 <+199>: mov %rdx,(%rax)
0x000000000044b33a <+202>: movzwl -0x10(%rcx),%eax
0x000000000044b33e <+206>: and $0xfffffff8,%eax
0x000000000044b341 <+209>: cmp $0x8,%eax
0x000000000044b344 <+212>: je 0x44b420 <backend_find_call_out_info+432>
0x000000000044b34a <+218>: cmp %rdx,%rbp
0x000000000044b34d <+221>: jb 0x44b310 <backend_find_call_out_info+160>
0x000000000044b34f <+223>: xor %eax,%eax
0x000000000044b351 <+225>: pop %rbx
0x000000000044b352 <+226>: pop %rbp
0x000000000044b353 <+227>: pop %r12
0x000000000044b355 <+229>: retq
0x000000000044b356 <+230>: nopw %cs:0x0(%rax,%rax,1)
---Type <return> to continue, or q <return> to quit---
(gdb) info reg
rax 0x0 0
rbx 0x7ffff7e631f0 140737352446448
rcx 0x14ef0a80 351210112
rdx 0x7ffff7e63200 140737352446464
rsi 0x459954 4561236
rdi 0x7ffff7e63210 140737352446480
rbp 0x7ffff7e63200 0x7ffff7e63200
rsp 0x7fffffffcec0 0x7fffffffcec0
r8 0x8e3820 9320480
r9 0x186a0 100000
r10 0x8e3820 9320480
r11 0x293 659
r12 0x8d6758 9267032
r13 0x7ffff7e631f0 140737352446448
r14 0x8e3380 9319296
r15 0xb1c5c8 11650504
rip 0x44b2fa 0x44b2fa <backend_find_call_out_info+138>
eflags 0x10246 [ PF ZF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb)
```
https://git.lysator.liu.se/pikelang/pike/-/issues/10094
Standards.IIM.get_information() returns ([]) for some files that have IPTC-II...
2022-11-16T10:16:08Z
Henrik (Grubba) Grubbström
Standards.IIM.get_information() returns ([]) for some files that have IPTC-IIM metadata.
```
Pike v8.0 release 1783 running Hilfe v3.5 (Incremental Pike Frontend)
> Stdio.File fd = Stdio.File("iim.jpg", "rb");
> Standards.IIM.get_information(fd);
(1) Result: ([ ])
```
Enabling the `werrors` in `decode_photoshop_data()` gives...
```
Pike v8.0 release 1783 running Hilfe v3.5 (Incremental Pike Frontend)
> Stdio.File fd = Stdio.File("iim.jpg", "rb");
> Standards.IIM.get_information(fd);
(1) Result: ([ ])
```
Enabling the `werrors` in `decode_photoshop_data()` gives:
```
> Standards.IIM.get_information(fd);
blocks: ({ /* 1 element */
"\4iptc\0\0\0\1\265\34\2\5\0.Britain Scotland Ukraine Nations League Soccer\34\2\n"
"\0\1""5\34\2\17\0\1S\34\2\24\0\bSOC WSOC\34\2""7\0\b20220921\34\2<\0\v152917+0000\34\2P\0\rScott Heppell\34\2U\0\3STR\34\2Z\0\aGlasgow\34\2e\0\3GBR\34\2n\0\2AP\34\2s\0\2AP\34\2t\0""8Copyright 2022 The Associated Press. All rights reserved\34\2x\0\307Ukrainian fans cheer prior to the star of the UEFA Nations League soccer match between Scotland and Ukraine, at Hampden Park, in Glasgow, Scotland, Wednesday, Sept. 21, 2022. (AP Photo/Scott Heppell)\34\2z\0\2HA\0"
})
block: "046970746300000001b51c0205002e4272697461696e2053636f746c616e6420556b7261696e65204e6174696f6e73204c656167756520536f636365721c020a0001351c020f0001531c02140008534f432057534f431c0237000832303232303932311c023c000b3135323931372b303030301c0250000d53636f74742048657070656c6c1c025500035354521c025a0007476c6173676f771c026500034742521c026e000241501c0273000241501c02740038436f70797269676874203230323220546865204173736f6369617465642050726573732e20416c6c207269676874732072657365727665641c027800c7556b7261696e69616e2066616e73206368656572207072696f7220746f207468652073746172206f66207468652055454641204e6174696f6e73204c656167756520736f63636572206d61746368206265747765656e2053636f746c616e6420616e6420556b7261696e652c2061742048616d7064656e205061726b2c20696e20476c6173676f772c2053636f746c616e642c205765646e65736461792c20536570742e2032312c20323032322e202841502050686f746f2f53636f74742048657070656c6c291c027a0002484100"
dsclen: 4
block_length: 1
actual length: 1
info: "\265"
Short info "\265"
(1) Result: ([ ])
```
The cause seems to be that there is an extra byte of NUL-padding after the Photoshop 6.0 header description text ("iptc"). https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/ says that the pascal string should be padded to an even length (ie including the length byte).
Pike 8.0