This reverts commit
9f8b9bb3ad94687b378f5539a1010310a089bc80.
the interpreter should still clean up some requests which have
no parent, as there are very much cases where those are leaked.
however, until we track all of those issues down, let's not
break CI
/** Internal request (i.e. one generated by the interpreter) is now complete
*
- * Whatever generated the request is now responsible for freeing it,
- * unless there's no talloc parent. In which case we have to free it.
+ * Whatever generated the request is now responsible for freeing it.
*/
static void _worker_request_done_internal(request_t *request, UNUSED rlm_rcode_t rcode, void *uctx)
{
fr_assert(!fr_heap_entry_inserted(request->runnable_id));
fr_assert(!fr_minmax_heap_entry_inserted(request->time_order_id));
-
- if (!talloc_parent(request)) talloc_free(request);
}
/** Detached request (i.e. one generated by the interpreter with no parent) is now complete
* shutting down.
*/
unlang_interpret_synchronous(NULL, request);
+ talloc_free(request);
}
/*
- * Otherwise the worker cleans up the request.
+ * Otherwise the worker cleans up the request request.
*/
return 0;
}
/** Internal request (i.e. one generated by the interpreter) is now complete
*
- * Whatever generated the request is now responsible for freeing it,
- * unless there's no talloc parent. In which case we have to free it.
*/
static void _request_done_internal(request_t *request, UNUSED rlm_rcode_t rcode, UNUSED void *uctx)
{
RDEBUG3("Done synchronous internal request");
- if (!talloc_parent(request)) talloc_free(request);
+ /* Request will be cleaned up by whatever created it */
}
static void _request_done_detached(request_t *request, UNUSED rlm_rcode_t rcode, UNUSED void *uctx)