Mir

Activity log for bug #1270964

Date Who What changed Old value New value Message
2014-01-20 22:10:14 Daniel d'Andrada bug added bug
2014-01-20 22:10:22 Daniel d'Andrada mir: assignee Daniel d'Andrada (dandrader)
2014-01-20 22:10:34 Daniel d'Andrada description SwitchingBundle:: last_consumed can be used without ever being set, thus its initial value of zero can wrongly be used and lead to bogus behavior. TEST_F(SwitchingBundleTest, compositor_client_interleaved) { int nbuffers = 3; mc::SwitchingBundle bundle(nbuffers, allocator, basic_properties); mg::Buffer* client_buffer = nullptr; //(nbufs=3,fcomp=0,ncomp=0,fready=0,nready=0,fclient=0,nclient=0) client_buffer = bundle.client_acquire(); //(nbufs=3,fcomp=0,ncomp=0,fready=0,nready=0,fclient=0,nclient=1) bundle.client_release(client_buffer); //(nbufs=3,fcomp=0,ncomp=0,fready=0,nready=1,fclient=1,nclient=0) client_buffer = bundle.client_acquire(); //(nbufs=3,fcomp=0,ncomp=0,fready=0,nready=1,fclient=1,nclient=1) bundle.compositor_acquire(0); //(nbufs=3,fcomp=2,ncomp=1,fready=0,nready=1,fclient=1,nclient=1) <-- BUG starts here // Should be: //(nbufs=3,fcomp=0,ncomp=1,fready=0,nready=0,fclient=1,nclient=1) bundle.client_release(client_buffer); //(nbufs=3,fcomp=2,ncomp=1,fready=0,nready=2,fclient=2,nclient=0) // Should be: //(nbufs=3,fcomp=0,ncomp=1,fready=1,nready=1,fclient=2,nclient=0) client_buffer = bundle.client_acquire(); // <- locks here if in buggy state } Merge proposal with fix will come shortly... SwitchingBundle::last_consumed can be used without ever being set, thus its initial value of zero can wrongly be used and lead to bogus behavior. TEST_F(SwitchingBundleTest, compositor_client_interleaved) {     int nbuffers = 3;     mc::SwitchingBundle bundle(nbuffers, allocator, basic_properties);     mg::Buffer* client_buffer = nullptr;     //(nbufs=3,fcomp=0,ncomp=0,fready=0,nready=0,fclient=0,nclient=0)     client_buffer = bundle.client_acquire();     //(nbufs=3,fcomp=0,ncomp=0,fready=0,nready=0,fclient=0,nclient=1)     bundle.client_release(client_buffer);     //(nbufs=3,fcomp=0,ncomp=0,fready=0,nready=1,fclient=1,nclient=0)     client_buffer = bundle.client_acquire();     //(nbufs=3,fcomp=0,ncomp=0,fready=0,nready=1,fclient=1,nclient=1)     bundle.compositor_acquire(0);     //(nbufs=3,fcomp=2,ncomp=1,fready=0,nready=1,fclient=1,nclient=1) <-- BUG starts here     // Should be:     //(nbufs=3,fcomp=0,ncomp=1,fready=0,nready=0,fclient=1,nclient=1)     bundle.client_release(client_buffer);     //(nbufs=3,fcomp=2,ncomp=1,fready=0,nready=2,fclient=2,nclient=0)     // Should be:     //(nbufs=3,fcomp=0,ncomp=1,fready=1,nready=1,fclient=2,nclient=0)     client_buffer = bundle.client_acquire(); // <- locks here if in buggy state } Merge proposal with fix will come shortly...
2014-01-20 22:13:13 Daniel d'Andrada mir: status New In Progress
2014-01-20 22:44:43 Launchpad Janitor branch linked lp:~dandrader/mir/switchingBundle_lp1270964
2014-01-21 01:25:50 Daniel van Vugt mir: milestone 0.1.5
2014-01-21 01:25:56 Daniel van Vugt mir: importance Undecided Medium
2014-01-21 07:42:58 Daniel van Vugt branch linked lp:~vanvugt/mir/test-1270964
2014-01-22 06:59:16 Daniel van Vugt mir: importance Medium Low
2014-01-23 08:07:12 PS Jenkins bot mir: status In Progress Fix Committed
2014-02-10 02:01:20 Daniel van Vugt bug task added mir (Ubuntu)
2014-02-10 02:03:48 Daniel van Vugt mir (Ubuntu): importance Undecided Low
2014-02-10 02:03:48 Daniel van Vugt mir (Ubuntu): status New Fix Released
2014-02-10 07:16:50 Daniel van Vugt mir: status Fix Committed Fix Released
2014-02-13 03:58:23 Launchpad Janitor branch linked lp:ubuntu/trusty-proposed/mir