Deadlock-ish problem with PokeIn / Orchard

Topics: Troubleshooting, Writing modules
May 9, 2012 at 8:56 PM

We're trying to implement PokeIn (http://www.pokein.com/) and ran into a problem:

Our code works, and all seems in order, but if I go to a page that opens a pokein connection while being logged in as an admin and then go do something in the admin area (like create a new 'Page'), I'm stuck in some sort of 'deadlock' when I try to reload the page that opens the pokein connection.

The request will just 'hang' for X seconds, and eventually after a long time the connection will be made.

When I debug and break during such hang, the only thing that 'hangs' is the pokein connection handler, that is waiting to do something. I'm aware that it would lock the session while the connectiong is 'pending', therefor I marked the controller so that it would only open the sessions read-only.

Any suggestions on what I should check next?

I can say that it must have something to do with the 'user' being locked, as I can open the page + pokein connection with another browser as long as I dont log in with the 'locked' user.

Just some wild idea : should it help if I manually kill the 'top level' transaction of orchard (ofc this would need either reflection or some core hack) before passing the request to the pokein handler?

I already redid the module once to battle the same issue, but it seems I didn't resolve the issue at all :/