@tsteur opened this issue on December 2nd 2016

I have just spent a couple of hours remote debugging a bug that I couldn't reproduce. Imaging you limit a data table and remove some rows.

Later you call $table->getRowFromLabel('foobar'); then it might still have the id mapped in $this->rowsIndexByLabel even though the actual column was removed. Ideally, when a row is deleted, we would also delete the map from $this->rowsIndexByLabel directly. Naturally you would think a $table->setLabelsHaveChanged()would fix this but I noticed it does actually not unset all previously stored links so under circumstances $table->getRowFromLabel('foobar'); might actually return a row with a completely different label. This is especially problematic when eg trying to rename something like Archiver::LABEL_NOT_DEFINED. In this case a completely different row was renamed to "Not defined"

This could actually explain a couple of odd issues and may be worth merging into Piwik 2 as well.

@mattab commented on December 4th 2016

That's an excellent & tricky find :8ball:

This issue was closed on December 3rd 2016
Powered by GitHub Issue Mirror