[Barrelfish-users] Assertion fired when calling "nameserver_register" function

Kornilios Kourtis kornilios.kourtis at inf.ethz.ch
Thu Dec 19 13:33:06 CET 2013


Dear Mark,

On Mon, Dec 16, 2013 at 05:38:37PM +0000, M Brown wrote:
> Guys,
> 
>    I’m getting the following assertion fired when calling the
>    nameserver_register function from within an export callback
>    function:
> 
> [cid]
> 
> The example message test works fine. The structure of the code I have
> is as follows:
> 
> main {
>                 thread_create(myTask, NULL);
>                 .
>                 .
>                 .
> }
> 
> int myTask(void* arg) {
>                 .
>                 .
>                 .
>                 <iface>_export(NULL,
>                                export_cb, connect_cb,
>                                get_default_waitset(),
>                                IDC_EXPORT_FLAGS_DEFAULT);
> 
> }
> 
> void export_cb(void *st, errval_t err, iref_t iref) {
>                 .
>                 .
>                 .
>                 // The assertion fires within this invocation
>                 nameserver_register(“iface”, iref);
> }
> 
> Is there something I’m doing wrong here?

[I'm guessing you mean nameservice_register() above]

Judging from the failed assertion (!_rpc->rpc_in_progress), I'm guessing
that it might have something to do with using multiple threads. What are
the other threads doing? Can you reproduce the problem when using a
single thread?

cheers,
Kornilios.

-- 
Kornilios Kourtis



More information about the Barrelfish-users mailing list