Opened 7 years ago

Last modified 4 years ago

#8601 new bug

Running alert with execl from app launched by tracker results in infinite loop

Reported by: pulkomandy Owned by: nobody
Priority: normal Milestone: R1
Component: System Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

Use this very simple application :

int main(void)
{
    execl("/bin/alert", "alert", "alert", "alert", NULL);
}

When run from terminal, everying works as expected.

When run from Tracker, alert gets launched, but apparently gets an invalid port. Notes from IRC chat about it :

<AnEvilYak> alert's BApplication looper seems to have an invalid port <AnEvilYak> BLooper::ReadRawFromPort() calls port_buffer_size_etc() which returns a negative value <AnEvilYak> because of the way things are returned up the chain, this leads BLooper to think it has a message even though it doesn't

Since alert is then sucking 100% CPU, this is quite annoying to debug on my single-core machine.

Change History (2)

comment:1 by pulkomandy, 5 years ago

This is still happening in hrev47157.

comment:2 by axeld, 4 years ago

What happens is that the application gets an invalid port from pre-registering. Not sure yet why this happens, though.

Note: See TracTickets for help on using tickets.