Post

Replies

Boosts

Views

Activity

Reply to DriverKit. Data Integrity issue.
Hello, The crash is stable and always reproduced with the same error pattern. Another example of the crash is attached crash2.txt There are no DispatchSync calls in our code. Here is the SCMD_DONE: void OsBridge::SCMD_DONE(void *gh, base_cmd * cmd, SCSIUserParallelResponse * resp) {     Base * ghc = (Base * )gh;     SCSIUserParallelResponse lResp = *resp;     lResp.version = kScsiUserParallelTaskResponseCurrentVersion1;     lResp.fControllerTaskIdentifier = cmd->req.fControllerTaskIdentifier;     lResp.fTargetID = cmd->req.fTargetID;     __block OSAction * act = cmd->action;     ghc->clean_cmd(cmd);     ghc->ivars->sentQueue->DispatchAsync(^{         ghc->ParallelTaskCompletion(act, lResp);         OSSafeReleaseNULL(act);     }); } SCMD_DONE - can be called from the Interrupt processing thread (Interrupt DispatchQueue) sentQueue - DispatchQueue is used only for ParallelTaskCompletion calls. We understand that the reason for the issue is a deadlock. We do not understand the reason and how we can fix it. Could you give any hints?
Oct ’25
Reply to Trigger UserAbortTaskRequest method in IOUserSCSIParallelInterfaceController subclass
Thank you very much for so detailed explanation! It is mush clear now. I appreciate that it's been known at early stage and I may optimise our driver implementation. I totally agree that it should be documented. And I understand that it cannot be removed for binary compatibility reasons, it's fine. Could you please guide me how to (and where) report the bug for this case? Regards
Jun ’25