Re: [PATCH v5 07/20] job.h: add _locked duplicates for job API functions called with and without job_mutex

2022-02-24 Thread Emanuele Giuseppe Esposito



On 17/02/2022 15:20, Stefan Hajnoczi wrote:
> On Tue, Feb 08, 2022 at 09:35:00AM -0500, Emanuele Giuseppe Esposito wrote:
>>  static void job_exit(void *opaque)
>>  {
>>  Job *job = (Job *)opaque;
>>  AioContext *ctx;
>> +JOB_LOCK_GUARD();
>>  
>>  job_ref(job);
>>  aio_context_acquire(job->aio_context);
> 
> The previous patch said:
> 
>   We don't want this, as job_lock must be taken inside the AioContext
>   lock, and taking it outside would cause deadlocks.

This was misleading (and thus removed). You have to remember that at
this point JOB_LOCK_GUARD is nop.
I will add this to the commit message too.

> 
> Therefore this looks like a deadlock.
> 




Re: [PATCH v5 07/20] job.h: add _locked duplicates for job API functions called with and without job_mutex

2022-02-17 Thread Stefan Hajnoczi
On Tue, Feb 08, 2022 at 09:35:00AM -0500, Emanuele Giuseppe Esposito wrote:
>  static void job_exit(void *opaque)
>  {
>  Job *job = (Job *)opaque;
>  AioContext *ctx;
> +JOB_LOCK_GUARD();
>  
>  job_ref(job);
>  aio_context_acquire(job->aio_context);

The previous patch said:

  We don't want this, as job_lock must be taken inside the AioContext
  lock, and taking it outside would cause deadlocks.

Therefore this looks like a deadlock.


signature.asc
Description: PGP signature