Fixing a race condition for hovercards
Fixing a race condition for hovercards

Summary:
Refs T1048 - Take this setup:

D123 D321

Hover with the mouse over one object, and move to another one before it got loaded. You'll have two hovercards. Of these you can't get rid of one anymore. Not through resizing, not through showing another hovercard. (You may have to try a few times). I think it only happens when #2 loads faster than #1. #2 is displayed, then #1 gets loaded and draws.

Or something like that. You could have a race condition where one draws after another and overwrites the current node/anchor, without hiding it. This renders the previous card unhideable, even on resize / mouse far away.

Test Plan:
Did a repro by hovering a lot.

Applied this change. Could not repro anymore.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Maniphest Tasks: T1048

Differential Revision: https://secure.phabricator.com/D5594

ide/phabricator,apexstudios/phabricator,hshackathons/phabricator-deprecated,telerik/phabricator,UNCC-OpenProjects/Phabricator,shrimpma/phabricator,dannysu/phabricator,vinzent/phabricator,huangjimmy/phabricator-1,wikimedia/phabricator,uhd-urz/phabricator,devurandom/phabricator,Khan/phabricator,eSpark/phabricator,shrimpma/phabricator,gsinkovskiy/phabricator,wikimedia/phabricator-phabricator,wxstars/phabricator,Automattic/phabricator,wikimedia/phabricator-phabricator,hach-que/unearth-phabricator,akkakks/phabricator,cjxgm/p.cjprods.org,kwoun1982/phabricator,apexstudios/phabricator,r4nt/phabricator,folsom-labs/phabricator,ide/phabricator,zhihu/phabricator,codevlabs/phabricator,tanglu-org/tracker-phabricator,wangjun/phabricator,a20012251/phabricator,zhihu/phabricator,denisdeejay/phabricator,benchling/phabricator,kwoun1982/phabricator,apexstudios/phabricator,hach-que/phabricator,aik099/phabricator,vuamitom/phabricator,vuamitom/phabricator,matthewrez/phabricator,jwdeitch/phabricator,devurandom/phabricator,kanarip/phabricator,dannysu/phabricator,shl3807/phabricator,christopher-johnson/phabricator,optimizely/phabricator,phacility/phabricator,benchling/phabricator,matthewrez/phabricator,Automatic/phabricator,wikimedia/phabricator-phabricator,folsom-labs/phabricator,memsql/phabricator,devurandom/phabricator,WuJiahu/phabricator,hach-que/unearth-phabricator,Khan/phabricator,aswanderley/phabricator,coursera/phabricator,wikimedia/phabricator-phabricator,huangjimmy/phabricator-1,wxstars/phabricator,matthewrez/phabricator,vinzent/phabricator,gsinkovskiy/phabricator,optimizely/phabricator,Khan/phabricator,uhd-urz/phabricator,huangjimmy/phabricator-1,kalbasit/phabricator,schlaile/phabricator,memsql/phabricator,dannysu/phabricator,denisdeejay/phabricator,parksangkil/phabricator,sharpwhisper/phabricator,leolujuyi/phabricator,WuJiahu/phabricator,UNCC-OpenProjects/Phabricator,parksangkil/phabricator,freebsd/phabricator,vuamitom/phabricator,aswanderley/phabricator,folsom-labs/phabricator,Drooids/phabricator,gsinkovskiy/phabricator,leolujuyi/phabricator,wikimedia/phabricator,r4nt/phabricator,devurandom/phabricator,christopher-johnson/phabricator,huaban/phabricator,zhihu/phabricator,shrimpma/phabricator,NigelGreenway/phabricator,kalbasit/phabricator,a20012251/phabricator,leolujuyi/phabricator,Drooids/phabricator,ryancford/phabricator,wusuoyongxin/phabricator,kanarip/phabricator,freebsd/phabricator,librewiki/phabricator,sharpwhisper/phabricator,aik099/phabricator,freebsd/phabricator,kalbasit/phabricator,sharpwhisper/phabricator,wangjun/phabricator,hshackathons/phabricator-deprecated,akkakks/phabricator,vuamitom/phabricator,gsinkovskiy/phabricator,cjxgm/p.cjprods.org,hshackathons/phabricator-deprecated,shl3807/phabricator,optimizely/phabricator,phacility/phabricator,wikimedia/phabricator,vuamitom/phabricator,shrimpma/phabricator,telerik/phabricator,kwoun1982/phabricator,uhd-urz/phabricator,wxstars/phabricator,vinzent/phabricator,hach-que/unearth-phabricator,optimizely/phabricator,librewiki/phabricator,dannysu/phabricator,aik099/phabricator,shl3807/phabricator,r4nt/phabricator,hach-que/unearth-phabricator,Automatic/phabricator,Symplicity/phabricator,gsinkovskiy/phabricator,zhihu/phabricator,kanarip/phabricator,ryancford/phabricator,librewiki/phabricator,benchling/phabricator,codevlabs/phabricator,parksangkil/phabricator,vinzent/phabricator,sharpwhisper/phabricator,eSpark/phabricator,eSpark/phabricator,jwdeitch/phabricator,Symplicity/phabricator,uhd-urz/phabricator,NigelGreenway/phabricator,jwdeitch/phabricator,cjxgm/p.cjprods.org,christopher-johnson/phabricator,hach-que/unearth-phabricator,kanarip/phabricator,memsql/phabricator,folsom-labs/phabricator,akkakks/phabricator,eSpark/phabricator,devurandom/phabricator,jwdeitch/phabricator,r4nt/phabricator,sharpwhisper/phabricator,memsql/phabricator,wusuoyongxin/phabricator,MicroWorldwide/phabricator,UNCC-OpenProjects/Phabricator,dannysu/phabricator,a20012251/phabricator,hach-que/phabricator,Automatic/phabricator,vinzent/phabricator,tanglu-org/tracker-phabricator,huangjimmy/phabricator-1,freebsd/phabricator,Drooids/phabricator,Soluis/phabricator,wusuoyongxin/phabricator,Soluis/phabricator,r4nt/phabricator,optimizely/phabricator,denisdeejay/phabricator,codevlabs/phabricator,hshackathons/phabricator-deprecated,huaban/phabricator,hshackathons/phabricator-deprecated,tanglu-org/tracker-phabricator,WuJiahu/phabricator,zhihu/phabricator,Soluis/phabricator,shl3807/phabricator,tanglu-org/tracker-phabricator,kwoun1982/phabricator,Symplicity/phabricator,hach-que/phabricator,aswanderley/phabricator,Automatic/phabricator,schlaile/phabricator,aswanderley/phabricator,kwoun1982/phabricator,memsql/phabricator,NigelGreenway/phabricator,schlaile/phabricator,leolujuyi/phabricator,hach-que/phabricator,matthewrez/phabricator,benchling/phabricator,folsom-labs/phabricator,a20012251/phabricator,akkakks/phabricator,Symplicity/phabricator,WuJiahu/phabricator,wikimedia/phabricator-phabricator,wusuoyongxin/phabricator,phacility/phabricator,huangjimmy/phabricator-1,wikimedia/phabricator,aik099/phabricator,UNCC-OpenProjects/Phabricator,codevlabs/phabricator,Khan/phabricator,Soluis/phabricator,akkakks/phabricator,phacility/phabricator,eSpark/phabricator,wxstars/phabricator,coursera/phabricator,ryancford/phabricator,christopher-johnson/phabricator,wangjun/phabricator,zhihu/phabricator,librewiki/phabricator,NigelGreenway/phabricator,aswanderley/phabricator,Soluis/phabricator,Automattic/phabricator,kanarip/phabricator,MicroWorldwide/phabricator,codevlabs/phabricator,denisdeejay/phabricator,coursera/phabricator,ide/phabricator,MicroWorldwide/phabricator,MicroWorldwide/phabricator,huaban/phabricator,wangjun/phabricator,schlaile/phabricator,christopher-johnson/phabricator,parksangkil/phabricator,huaban/phabricator,hach-que/phabricator,cjxgm/p.cjprods.org,NigelGreenway/phabricator,cjxgm/p.cjprods.org,telerik/phabricator,coursera/phabricator,devurandom/phabricator,ryancford/phabricator,a20012251/phabricator,ide/phabricator,Drooids/phabricator,uhd-urz/phabricator,kalbasit/phabricator,Automattic/phabricator,librewiki/phabricator,tanglu-org/tracker-phabricator