View Issue Details

IDProjectCategoryView StatusLast Update
0000584PHP for OS/2, ArcaOS & eComStation (PHP versions v8.x v7.x v5.x)Bugpublic2021-03-12 02:32
ReporterIgor Vaskov Assigned Topsmedley  
PriorityurgentSeverityblockReproducibilityalways
Status closedResolutionfixed 
PlatformI586OSECSOS Version2.0
Summary0000584: php iconv not working (latest kit)
DescriptionPlease test it! It is very big problem...
<?php
    $test = "TEST OK";
    $test = iconv( "UTF-8", "windows-1251//IGNORE", $test );
    if (!$test) {
        echo "test failed";
    } else echo $test;
?>
TagsNo tags attached.
Attached Files
traps_php.5.3.27.zip (134,055 bytes)
85D3_04.zip (15,387 bytes)
ucv32_xqs-20130922.zip (1,855 bytes)
uconvfix2-130221.zip (19,975 bytes)

Relationships

related to 0000578 closedpsmedley PHP for OS/2, ArcaOS & eComStation (PHP versions v8.x v7.x v5.x) PHP 5.3.17 
has duplicate 0000724 closedpsmedley Apache 2.x  uconv.dll crash with Apache 2.4.46 

Activities

Igor Vaskov

2013-09-11 22:54

reporter   ~0002484

I back extension kit from php 5.3.17. It works ... maybe correctly.

psmedley

2013-09-14 07:35

administrator   ~0002486

for some reason 5.3.20 is picking up the minimal iconv implementation from libc rather than gnu iconv...

psmedley

2013-09-15 07:09

administrator   ~0002489

http://smedley.id.au/tmp/php-5.3.27-os2-20130915.zip

Patches same as above 5.3.20 build, updated PHP source, iconv is linked against iconv 1.14 and should be ok.

Igor Vaskov

2013-09-17 12:09

reporter   ~0002498

Last edited: 2013-09-17 12:09

It works, but there are traps.
See attache.

psmedley

2013-09-17 20:14

administrator   ~0002501

would be helpful is you could install libc065.xqs and find a way to generate a ucv32.xqs

Looks like a potential libc bug tho...

Igor Vaskov

2013-09-17 21:11

reporter   ~0002502

Last edited: 2013-09-17 21:15

Ok. Where can I get libc065.xqs?

ucv32.dll it is renamed uconv32.dll from IBM.
It was renamed and is used to fix a multiprocessor.
Where can I get ucv32.xqs?
This kit for uconv:
http://mantis.smedley.id.au/file_download.php?file_id=283&type=bug

psmedley

2013-09-17 23:35

administrator   ~0002503

Libclibc065_xqs-20120511.zip

Do you have a symbol file for ucv32?

Igor Vaskov

2013-09-18 11:43

reporter   ~0002504

Paul, please say me link to download this file.

No, I do not a symbol file for ucv32.

Steven Levine

2013-09-18 17:21

manager   ~0002505

libc.xqs is at

http://home.earthlink.net/~steve53/betas/libc065_xqs-20120511.zip

Do you have a link to the distro that includes ucv32.dll? I know what it is, but it's pretty well hidden.

Steven Levine

2013-09-18 17:23

manager   ~0002506

Please update your exceptq.dll to the version in

http://home.earthlink.net/~steve53/betas/exceptq-7.11-dll-shl-2013-05-14.zip

Steven Levine

2013-09-18 17:43

manager   ~0002507

ucv32.dll is in

http://ecomstation.ru/projects/acpitools/download/uconvfix.ZIP

Ucv32.dll is uconv.dll with the entry points renamed. Uconv.dll is a wrapper to serializes access to the ucv32.dll.

I'll tweak the original uconv.sym to work with ucv32.dll when I get a moment.

Offhand, the ucv32 traps look like heap corruption. It's too soon to tell if they are all the same defect. I'll have more to say once we get a more complete .trp file.

Steven Levine

2013-09-18 17:51

manager   ~0002508

Grab uconv.xqs and ucv32.xqs from the ticket and install them to the directory that contains the matching DLL.

Steven Levine

2013-09-21 00:40

manager   ~0002513

A bit of analysis which waiting for a better .trp file...

I picked 5540_29.TRP because it is representative of one kind of trap.

Igor is using

 Exceptq Version: 7.10 (Mar 1 2011)

which is somewhat antique, so the location decode is not as good as it could be.

We have

 0742E774 1D0E82A6 PHP5 0001:000382A6 _timelib_dump_tzinfo 0001:000384DE (parse_tz.obj)

which tells us we doing some TZ related.

We also have

 0742DA14 1DE58A47 LIBC065 0001:00058A47

The gcc065 map says

Module: D:\coding\libc\0.6\obj\OS2\RELEASE\emx\omf\libc_s.lib(setlocale.obj)
0001:00058801* ___libc_localeCreateObjects
0001:000589a5 __std_setlocale

so we are probably in setlocale or a static helper function.

We also have

 0742D500 1F9940AF UCV32 0001:000040AF

which may be in

 0001:00003FBC U32MapCpToUcsCp

This is consistent with the above.

Igor Vaskov

2013-09-21 20:31

reporter   ~0002514

No new bugs during this time. All debug information available. We'll wait.

Igor Vaskov

2013-09-22 11:59

reporter   ~0002518

New trap php 5.3.27 and last part debug info.

Steven Levine

2013-09-22 23:30

manager   ~0002520

The new .trp file was useful.

Please update uvc32.xqs with the version in ucv32_xqs-20130922.zip. It's rebuilt to include more symbols.

We might have another SMP issue.

The call path appears to be

__std_setlocale ->
  localeDo ->
    localeDoOne ->
      __libc_localeCreateObjects -> no stack frame
        UniCreateLocaleObject -> no stack frame, libuni.dll
                                        setlocale.c:1341
          _UniMalloc -> no stack frame, ucv32.dll
            _malloc ->
              _umalloc+27E)
                 _umallocSub_146B8 traps here

I need to think about how best to fix this. It might be sufficient to modify ucv32 to serialize _UniMalloc and _UniFree calls.

Igor Vaskov

2013-09-22 23:56

reporter   ~0002521

I use a new patch than ecs team. Fix in attache. Please check size of ucv32.dll. I know of two different files with a linearized version.
My ucv32.dll similar of dll from attache.

Steven Levine

2013-09-23 00:16

manager   ~0002522

Last edited: 2013-09-23 06:40

OK. What they did if fix the serialization code to use a shared semaphore. The older implementation could only serialize calls that passed through uconv.dll and, as Vyacheslav found, the code was not robust.

Please ask him to add code to serialize the UniMalloc and UniFree calls. This may be sufficient to solve your traps.

Does anyone have a popuplog for the exceptions that caused uconvfix to be created? I'd like to check if the exception is the same one we are working on.

Igor Vaskov

2013-09-23 12:06

reporter   ~0002529

No a popuplog of all time.
I asked to add serialization UniMalloc and UniFree to fix.

Steven Levine

2013-09-23 15:15

manager   ~0002530

My bad. The exception info will be written to stderr, since this is a libc apps. You might find a copy of the exception info in an older set of your log files.

Igor Vaskov

2013-09-23 15:26

reporter   ~0002531

Maybe it?
Killed by SIGSEGV
pid=0x6f94 ppid=0x553d tid=0x0010 slot=0x009d pri=0x0200 mc=0x0001
E:\APPS\APACHE2\BIN\HTTPD.EXE
UCV32 0:00005b56
cs:eip=005b:1f995b56 ss:esp=0053:02b7d4b4 ebp=02b7d500
 ds=0053 es=0053 fs=150b gs=0000 efl=00010206
eax=02630000 ebx=00000210 ecx=0000afb0 edx=00000000 edi=02ad5050 esi=1ba10489
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
[Wed Sep 18 16:11:51 2013] [error] (OS 343)OS/2 error 343: unable to open work queue, exiting
[Wed Sep 18 21:49:37 2013] [notice] caught SIGTERM, shutting down
[Wed Sep 18 21:49:48 2013] [notice] Apache/2.2.24 (OS/2) configured -- resuming normal operations
** Secondary exception C0000005 occurred in TID 34 at cs:eip 005B:1F9949C6 **
** Exceptq report suppressed - exceptq in use by TID 4 **

Killed by SIGSEGV
pid=0x85d3 ppid=0x85cb tid=0x0022 slot=0x0108 pri=0x0200 mc=0x0001
E:\APPS\APACHE2\BIN\HTTPD.EXE
UCV32 0:000049c6
cs:eip=005b:1f994APACHE2: UnableToOpenConfigureFile `delegates.xml' @ warning/configure.c/GetConfigureOptions/591.
  efl=00010217
eax=02b01ea0 ebx=0000000c ecx=00000043 edx=02b01ea0 edi=093fd86c esi=093fd968
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
Creating 85D3_04.TRP

Steven Levine

2013-09-23 15:41

manager   ~0002532

This is an example of the libc exception report that gets written when you have uconvfix installed. I was looking for an older example that was written before you installed the uconvfix patch. I've asked Slavik if he can provide this.

Steven Levine

2013-09-25 18:46

manager   ~0002535

Have you had any ucv32 exceptions since installing Slavik's unconvfix update?

 http://moveton.tk/files/uconvfix2-130924.zip

Igor Vaskov

2013-09-25 19:29

reporter   ~0002536

I checked first fix on the desktop. After successful tests will bear on the server.

Igor Vaskov

2013-09-27 11:48

reporter   ~0002537

I installed the latest version of uconvfix on my server.
The experiment was not clean. I also migrated from 5.3 to 5.4 php.
If there are traps, I will report.

Igor Vaskov

2013-09-30 20:19

reporter   ~0002538

Everything is stable. Without traps.

psmedley

2013-10-10 23:00

administrator   ~0002542

ticket can be closed now?

Igor Vaskov

2013-10-11 06:55

reporter   ~0002550

Yes. Now all works correctly.

psmedley

2013-10-11 11:00

administrator   ~0002555

resolved by current public builds built with gcc 4.7 and installation of latest uconvfix

Issue History

Date Modified Username Field Change
2013-09-11 22:42 Igor Vaskov New Issue
2013-09-11 22:54 Igor Vaskov Note Added: 0002484
2013-09-14 07:35 psmedley Note Added: 0002486
2013-09-15 07:09 psmedley Note Added: 0002489
2013-09-17 09:54 psmedley Assigned To => psmedley
2013-09-17 09:54 psmedley Status new => feedback
2013-09-17 12:09 Igor Vaskov Note Added: 0002498
2013-09-17 12:09 Igor Vaskov Status feedback => assigned
2013-09-17 12:09 Igor Vaskov Note Edited: 0002498
2013-09-17 12:09 Igor Vaskov File Added: traps_php.5.3.27.zip
2013-09-17 20:14 psmedley Note Added: 0002501
2013-09-17 21:11 Igor Vaskov Note Added: 0002502
2013-09-17 21:15 Igor Vaskov Note Edited: 0002502
2013-09-17 21:15 Igor Vaskov Note Edited: 0002502
2013-09-17 23:35 psmedley Note Added: 0002503
2013-09-18 11:43 Igor Vaskov Note Added: 0002504
2013-09-18 17:21 Steven Levine Note Added: 0002505
2013-09-18 17:22 Steven Levine Relationship added related to 0000578
2013-09-18 17:23 Steven Levine Note Added: 0002506
2013-09-18 17:43 Steven Levine Note Added: 0002507
2013-09-18 17:49 Steven Levine File Added: uconv_xqs-20130918.zip
2013-09-18 17:50 Steven Levine File Added: ucv32_xqs-20130918.zip
2013-09-18 17:51 Steven Levine Note Added: 0002508
2013-09-21 00:40 Steven Levine Note Added: 0002513
2013-09-21 20:31 Igor Vaskov Note Added: 0002514
2013-09-22 11:57 Igor Vaskov File Added: 85D3_04.zip
2013-09-22 11:59 Igor Vaskov Note Added: 0002518
2013-09-22 22:28 Steven Levine File Added: ucv32_xqs-20130922.zip
2013-09-22 22:29 Steven Levine File Added: libuni_sym-20020904.zip
2013-09-22 23:16 Steven Levine File Deleted: ucv32_xqs-20130922.zip
2013-09-22 23:18 Steven Levine File Added: ucv32_xqs-20130922.zip
2013-09-22 23:30 Steven Levine Note Added: 0002520
2013-09-22 23:49 Igor Vaskov File Added: uconvfix2-130221.zip
2013-09-22 23:56 Igor Vaskov Note Added: 0002521
2013-09-23 00:16 Steven Levine Note Added: 0002522
2013-09-23 06:40 Steven Levine Note Edited: 0002522
2013-09-23 10:34 psmedley Summary php 5.3.20 iconv not working (latest kit) => php iconv not working (latest kit)
2013-09-23 12:06 Igor Vaskov Note Added: 0002529
2013-09-23 15:15 Steven Levine Note Added: 0002530
2013-09-23 15:26 Igor Vaskov Note Added: 0002531
2013-09-23 15:41 Steven Levine Note Added: 0002532
2013-09-25 18:46 Steven Levine Note Added: 0002535
2013-09-25 19:29 Igor Vaskov Note Added: 0002536
2013-09-27 11:48 Igor Vaskov Note Added: 0002537
2013-09-30 20:19 Igor Vaskov Note Added: 0002538
2013-10-10 23:00 psmedley Note Added: 0002542
2013-10-11 06:55 Igor Vaskov Note Added: 0002550
2013-10-11 11:00 psmedley Note Added: 0002555
2013-10-11 11:00 psmedley Status assigned => resolved
2013-10-11 11:00 psmedley Resolution open => fixed
2020-08-24 03:11 psmedley Status resolved => closed
2021-03-12 02:32 Steven Levine Relationship added has duplicate 0000724