Henry Nestler wrote:
> Henry Nestler wrote:
>> With initrd, Colinux is shutting down from command "halt" and crashed
>> some times on the "power off".
>> Tested build 20070101 from SF on Vista in VMware.
>> CoLinux starts with the shipped initrd file:
>> colinux-daemon kernel=vmlinux initrd=initrd.gz root=/dev/ram0
>> Here are STOP code:
>> 0x80000003 (0xc0000046, 0x8187cb3c, 0x922eb6e4, 0x00000000)
>> From reading Bugcheck Analysis, the call to *KeReleaseMutex* is wrong
>> somethere from linux+0x9732, the wrapper function co_os_mutex_release.
>> From looking the stack, in the file src/colinux/kernel/monitor.c at
>> line 1156, in the function co_monitor_refdown calls with an invalid arg?
>> co_os_mutex_release(manager->lock); <-- line 1156
> Problem found in src/colinux/kernel/monitor.c(1134):
> Function co_monitor_refdown is called recursive via
> send_monitor_end_messages, co_manager_send_eof,
> co_os_manager_userspace_eof, co_manager_close, co_manager_close_
> In a worst case send_monitor_end_messages (1159) calls
> co_manager_send_eof (1122), indirectly co_monitor_refdown and with
> co_monitor_destroy (1162) freed the memory for "cmon". Than goes
> continue at line 1123 with bug.
It was not a Vista only problem. It was a problem for running under
heavy cpu and memory usage.
The autobuild has this patch included today.
George, please apply the patch to branch stable.
* Don't destroy monitor struct from co_monitor_refdown, if
send_monitor_end_messages is active from an other recursive call.
Bugfix for BSDO on halt/shutdown under Vista.