Opened 13 years ago

Closed 12 years ago

#285 closed defect (invalid)

Assertion failed (driver->state == DRIVER_STARTING) at file 'devman.c', line 521

Reported by: Jakub Jermář Owned by:
Priority: major Milestone: 0.5.0
Component: helenos/srv/devman Version:
Keywords: Cc: vojtech.horky@…
Blocker for: Depends on:
See also:

Description

After applying the attached patch on top of mainline,784, devamn hit the following assertion:

void set_driver_phone(driver_t *driver, sysarg_t phone)
{
        fibril_mutex_lock(&driver->driver_mutex);
        assert(driver->state == DRIVER_STARTING);
        driver->phone = phone;
        fibril_mutex_unlock(&driver->driver_mutex);
}

I am also attaching a screenshot that shows what devman had been doing before it hit the assertion.

Attachments (2)

patch (15.1 KB ) - added by Jakub Jermář 13 years ago.
Screenshot-QEMU.png (30.9 KB ) - added by Jakub Jermář 13 years ago.

Download all attachments as: .zip

Change History (6)

by Jakub Jermář, 13 years ago

Attachment: patch added

by Jakub Jermář, 13 years ago

Attachment: Screenshot-QEMU.png added

comment:1 by Vojtech Horky, 13 years ago

I am not sure whether this is not completely different issue. But this assertion is hit when the driver specifies wrong name. I encountered this assertion when I copied skeleton of an existing driver and forgot to change driver_t.name to reflect the new name.

Completely off topic note: such assertion could be very dangerous because malicious client can "murder" devman by simply sending a register message with name of already running driver.

comment:2 by Vojtech Horky, 13 years ago

Cc: vojtech.horky@… added

comment:3 by Jakub Jermář, 13 years ago

Milestone: 0.4.30.5.0

comment:4 by Jakub Jermář, 12 years ago

Resolution: invalid
Status: newclosed

This ticket is no longer relevant as there have been major changes to devman in the meantime and the set_driver_phone() along with the assert has been removed in mainline,924.

Note: See TracTickets for help on using tickets.