2019年5月22日(水) 6:43 Mark Thomas <ma...@apache.org>:

> On 21/05/2019 13:34, Mark Thomas wrote:
> > On 21/05/2019 09:03, Keiichi Fujino wrote:
> >> 2019年5月16日(木) 21:55 <ma...@apache.org <mailto:ma...@apache.org>>:
> >>
> >>     This is an automated email from the ASF dual-hosted git repository.
> >>
> >>     markt pushed a commit to branch master
> >>     in repository https://gitbox.apache.org/repos/asf/tomcat.git
> >>
> >>     commit ab70de3278d5e506661faeb5febf71a061b89179
> >>     Author: Mark Thomas <ma...@apache.org <mailto:ma...@apache.org>>
> >>     AuthorDate: Thu May 16 13:36:39 2019 +0100
> >>
> >>         Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62841 poss
> >>     deadlock
> >>
> >>         Refactor the DeltaRequest serialization to reduce the window
> during
> >>         which the DeltaSession is locked and to remove a potential
> cause of
> >>         deadlocks during serialization.
>
> <snip/>
> >> Do you have any plan for applying this for using BackupManager ?
> >> There are similar codes in AbstractReplicatedMap#replicate.
> >> Do we need to apply a similar fix to AbstractReplicatedMap#replicate ?
> >
> > Probably. I'll trace the call hierarchy back from
> > DeltaRequest.serialize() and ensure nothing is holding the session lock.
>
> This is proving much trickier than it first appeared.
>
> I've had to do a fair bit of refactoring to fix this for the
> DeltaManager. My first (untested) attempt is here:
>
> https://github.com/markt-asf/tomcat/commits/bz62481-backup-manager
> (the final 3 commits)
>
> It is a bit too invasive for me to be comfortable just committing it. I
> also want to run the unit tests (although they don't test this code much).
>
> Feedback welcome.
>
>
It seems that the recordAllActions flag is not set in the newly created
DeltaRequest.

There are duplicated codes in DeltaManager#requestCompleted and
DeltaSession#getDiff.
It may be able to call getDiff method in the DeltaManager#requestCompleted.
The same is true for DeltaManager#deserializeAndExecuteDeltaRequest and
applyDiff.



> Mark
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>

-- 
Keiichi.Fujino

Reply via email to