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