Re: [Vala] Need help in debugging async code



A crash can happes if you call the callback to wakeup before the yield. Are you completly sure that your code 
is completly asyncrounous in any condition.

Il ven mar 18 01:05:05 2016 GMT+0100, Felipe Lavratti scrive:
Hey Marcin,

Just wondering,
Is your program using threading or any threaded object that is handled in
this part of code?




On Thu, Mar 17, 2016 at 20:44 marcin saepia net <marcin saepia net> wrote:

Hi all,

I encounter random crashes in my app, which (it's my guess) is triggered
when I call callback in async method.

Such as

public async void something() {
  SourceFunc callback_ref = something.callback;

  do_something_that_calls_another_callback(() => {
    callback_ref(); // here's crash happening. approximately 1/10000 calls
  });

  yield;
}

The chain of async calls is nested.

I get stack traces like this:

https://gist.githubusercontent.com/mspanc/9ca4795f48e56149a9a2/raw/9be534c66409b26820a66d54f8610f2aa6306e1e/gistfile1.txt

It's rather hard to believe that such basic thing as memory allocation is
broken in GLib.

Crash happens totally randomly, once per 1-3 days. You can imagine how hard
is to collect test cases. I am trying to hunt more stack traces in order to
find a pattern, but maybe in the meantime anyone here can share experience
in debugging such issues?

Or maybe there are some well-known bugs or antipatterns related to async
functions that should be avoided?

I use GLib 2.44 & Vala 0.30.0. I will try to upgrade to 2.46 but I see
nothing related in the changelog.

m.
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list

_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]