{"action":"created","issue":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2418","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2418/labels{/name}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2418/comments","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2418/events","html_url":"https://github.com/RIOT-OS/RIOT/issues/2418","id":57153460,"number":2418,"title":"iot-lab_M3: hard fault with RPL_UDP example on the testbed","user":{"login":"cgundogan","id":739129,"avatar_url":"https://avatars.githubusercontent.com/u/739129?v=3","gravatar_id":"","url":"https://api.github.com/users/cgundogan","html_url":"https://github.com/cgundogan","followers_url":"https://api.github.com/users/cgundogan/followers","following_url":"https://api.github.com/users/cgundogan/following{/other_user}","gists_url":"https://api.github.com/users/cgundogan/gists{/gist_id}","starred_url":"https://api.github.com/users/cgundogan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgundogan/subscriptions","organizations_url":"https://api.github.com/users/cgundogan/orgs","repos_url":"https://api.github.com/users/cgundogan/repos","events_url":"https://api.github.com/users/cgundogan/events{/privacy}","received_events_url":"https://api.github.com/users/cgundogan/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"thomaseichinger","id":56618,"avatar_url":"https://avatars.githubusercontent.com/u/56618?v=3","gravatar_id":"","url":"https://api.github.com/users/thomaseichinger","html_url":"https://github.com/thomaseichinger","followers_url":"https://api.github.com/users/thomaseichinger/followers","following_url":"https://api.github.com/users/thomaseichinger/following{/other_user}","gists_url":"https://api.github.com/users/thomaseichinger/gists{/gist_id}","starred_url":"https://api.github.com/users/thomaseichinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomaseichinger/subscriptions","organizations_url":"https://api.github.com/users/thomaseichinger/orgs","repos_url":"https://api.github.com/users/thomaseichinger/repos","events_url":"https://api.github.com/users/thomaseichinger/events{/privacy}","received_events_url":"https://api.github.com/users/thomaseichinger/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2015-02-10T10:02:54Z","updated_at":"2015-02-10T13:10:54Z","closed_at":null,"body":"**Sometimes** (I know @thomaseichinger loves these kinds of problems) a node on the iot-lab testbed runs into a hard fault when using the RPL_UDP example. I tried to narrow it down and I think the problem lies in the spi driver.\r\nIn `at86rf231_read_fifo()` the function `spi_release()` is called. There again, the mutex is unlocked and I believe this unlocking is the root of all problems, as it crashes on that particular line."},"comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments/73696358","html_url":"https://github.com/RIOT-OS/RIOT/issues/2418#issuecomment-73696358","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2418","id":73696358,"user":{"login":"thomaseichinger","id":56618,"avatar_url":"https://avatars.githubusercontent.com/u/56618?v=3","gravatar_id":"","url":"https://api.github.com/users/thomaseichinger","html_url":"https://github.com/thomaseichinger","followers_url":"https://api.github.com/users/thomaseichinger/followers","following_url":"https://api.github.com/users/thomaseichinger/following{/other_user}","gists_url":"https://api.github.com/users/thomaseichinger/gists{/gist_id}","starred_url":"https://api.github.com/users/thomaseichinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomaseichinger/subscriptions","organizations_url":"https://api.github.com/users/thomaseichinger/orgs","repos_url":"https://api.github.com/users/thomaseichinger/repos","events_url":"https://api.github.com/users/thomaseichinger/events{/privacy}","received_events_url":"https://api.github.com/users/thomaseichinger/received_events","type":"User","site_admin":false},"created_at":"2015-02-10T13:10:54Z","updated_at":"2015-02-10T13:10:54Z","body":"I think this strange behaviour results from the fact the current driver still reads the FIFO in interrupt context. I wasn't able to track this down yet as when I step through with the debugger this simply doesn't happen. I also have the rpl_udp example running now for about an hour with 5 nodes without any crash so it is really hard to narrow it down. BTW I will refactor this driver tomorrow. (Without major SPI transfers in interrupt context. Fingers crossed.)"}}