Custom Query (245 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (46 - 48 of 245)

Ticket Resolution Summary Owner Reporter
#256 fixed LIBC stream fmutex panic Silvan Scherrer dmik
Description

An attempt to terminate a multi-threaded console program with Ctrl-C may often cause LIBC to abort with a message like this:

LIBC PANIC!!
fmutex deadlock: Owner died!
0x18b0902c: Owner=0x01490002 Self=0x01490001 fs=0x3 flags=0x0 hev=0x0001004a
            Desc="LIBC stream"
pid=0x0149 ppid=0x00ba tid=0x0001 slot=0x00ba pri=0x0200 mc=0x0000
D:\CODING\TESTS\OS2\DOS\SEH\SEH.EXE
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.

This happens when a thread gets killed (as a result of the process termination procedure, initiated by the default Ctrl-C handler) while it is inside e.g. printf() and then another thread attempts to use printf() before it is terminated.

The same effect may be also seen when killing process with DosKillProcess?.

This is very annoying (especially if there are many threads each of which panics) and it can also cause a hard deadlock (e.g. if printf() is used in an exception handler) that won't ever let thread 1 to exit.

#273 fixed fcntl() fails Silvan Scherrer Silvan Scherrer
Description

given this code:

fl.l_type = rw;
fl.l_whence = SEEK_SET;
fl.l_start = off;
fl.l_len = len;
fl.l_pid = 0;
if (waitflag)
     return fcntl(tdb->fd, F_SETLKW, &fl);
else
return fcntl(tdb->fd, F_SETLK, &fl);

where len == 0 and off == 692

libc produces this log:

014759df 01 04 0004 Entr 0000 __fcntl_locking: fh=3 iRequest=9 pFlock=0x025bedf8
014759df 01 04 0004 ErrL 0000 __fcntl_locking (0 ms): D:/CODING/LIBC/0.6/src/emx/src/lib/sys/b_ioFileControl.c(334):
014759df 01 04 0004 ErrL 0000: ret -EINVAL - Invalid offStart=2b4 cbRange=7fffffffffffffff
014759df 01 03 0004 ErrL 0000 __libc_Back_ioFileControlStandard (0 ms): D:/CODING/LIBC/0.6/src/emx/src/lib/sys/b_ioFileControl.c(178):

i guess this libc check is wrong:

if (    offStart < 0
      ||  cbRange + offStart < 0)
      LIBCLOG_ERROR_RETURN_MSG(-EINVAL, "ret -EINVAL - Invalid offStart=%llx cbRange=%llx\n", offStart, cbRange);

in the case that cbRange is OFF_MAX the check should also succeed.

#280 fixed include os2safe.h by default Silvan Scherrer KO Myung-Hun
Description

Hi/2.

Currently, os2safe.h should be included manually. This is meaningful if a program intend to use a high memory. But some libraries does not consider a high memory at first.

So when enabled -Zhigh-memory in one program, it causes many problem when linking against non-high-memory-enabled libraries, especially without including os2safe.h.

However, if os2safe.h is included by default, it is possible to avoid this problem. The libraries without considering a high-memory, can be linked with a high memory enabled programs or libraries.

In addition, even tough os2safe.h is included without -Zhigh-mem, it has no side effects at all, but a little overhead to copy between the source and the buffer.

Note: See TracQuery for help on using queries.