Sorry for putting this up again, but I faced the same issue when I tried to get 2 QQuickRenderControls render into a frame buffer of the same context. Context sharing was no option, since it isn't support on all platforms, plus I would have had to change a good bunch of code to get it actually working with shared contexts.
Before initializing your QQuickRenderControl, issue the following call:
my_context->setProperty("_q_sgrendercontext", QVariant());
If this property is not an invalid QVariant, the code will assert at the position the thread creator mentioned. I didn't understand the use of this magic property when looking through the sources yet, but it seems that this property isn't used elsewhere and kind of redundant.
Sometimes it seems like the Qt developers like to give us riddles like that lol :-D.