Opened 9 years ago

Closed 8 years ago

#20 closed defect (fixed)

waitForEventsOnXPCOM rc=-1 errno=22

Reported by: Valery V. Sedletski Owned by: Valery V. Sedletski
Priority: major Milestone: VBox driver
Component: Frontends Keywords:
Cc:

Description

The message in the title repeats many times in the VM log, then after a minute or so, the VM starts, and then terminates.

VirtualBox VM 5.0.0_OSE r6 os2.x86 (Aug 28 2015 08:55:42) release log
00:00:01.386799 Log opened 2015-09-04T14:49:14.871000000Z
00:00:01.386802 Build Type: release
00:00:01.386806 OS Product: OS/2
00:00:01.386808 OS Release: 1
00:00:01.386811 OS Version: 2.45
00:00:01.386824 Host RAM: 3582MB total, 3363MB available
00:00:01.386828 Executable: L:\SRC\VBOX\OUT\OS2.X86\RELEASE\BIN\VBOXHEADLESS.EXE
00:00:01.386829 Process ID: 1322

00:00:01.386830 Package type: OS2_32BITS_GENERIC (OSE)
00:00:01.404009 Installed Extension Packs:
00:00:01.404029   Oracle VBoxDTrace Extension Pack (Version: 5.0.0_OSE r6; VRDE Module: )
00:00:01.407178 Console: Machine state changed to 'Starting'
00:00:01.427161 waitForEventsOnXPCOM rc=-1 errno=22
00:00:01.427197 waitForEventsOnXPCOM rc=-1 errno=22
00:00:01.427210 waitForEventsOnXPCOM rc=-1 errno=22
00:00:01.427223 waitForEventsOnXPCOM rc=-1 errno=22
00:00:01.427235 waitForEventsOnXPCOM rc=-1 errno=22

Attachments (2)

VBox-events-xpcom.log (103.9 KB) - added by Valery V. Sedletski 9 years ago.
The VM log with the problem
VBox-events-xpcom-fixed.log (46.5 KB) - added by Valery V. Sedletski 9 years ago.
The VM log with the problem fixed

Download all attachments as: .zip

Change History (6)

comment:1 Changed 9 years ago by Valery V. Sedletski

The issue is hopefully fixed. The cause is that there is a pipe in XPCOM, which is select()'ed. This is in src\libs\xpcom18a4\xpcom\threads\plevent.c. As we on OS/2 have select() implementation which is could be used on sockets only, I choose to use the local sockets instead of pipes, to be select()'able or poll()'able when mixed pipes with sockets.

I just changed

err = pipe(self->eventPipe);

to

    err = socketpair(AF_LOCAL, SOCK_STREAM, 0, (int *)self->eventPipe);

Now the message above disappeared from logs, and a VM started from VBoxHeadless does not terminate.

Changed 9 years ago by Valery V. Sedletski

Attachment: VBox-events-xpcom.log added

The VM log with the problem

Changed 9 years ago by Valery V. Sedletski

Attachment: VBox-events-xpcom-fixed.log added

The VM log with the problem fixed

comment:2 Changed 9 years ago by Valery V. Sedletski

Note: the problem #18 is similar (the cause is an attempt to use poll() on pipes, pipes are changed to local socket pair too).

comment:3 Changed 8 years ago by Valery V. Sedletski

As said above, it is fixed, like similar tickets #18 and #34.

comment:4 Changed 8 years ago by Valery V. Sedletski

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.