Bug report #18283

serious regression: labelling's parallel placement leads to endless label rendering

Added by Mathieu Pellerin - nIRV over 2 years ago. Updated over 2 years ago.

Status:Closed
Priority:High
Assignee:Nyall Dawson
Category:Labelling
Affected QGIS version:3.1(master) Regression?:Yes
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:fixed/implemented
Crashes QGIS or corrupts data:Yes Copied to github as #:26174

Description

When using the parallel placement mode to label a line layer, QGIS' rendering appears to enter in an endless loop while attempting to label that layer. The user has to eventually kill QGIS and restart the app to regain control of the app.

I'm seeing this under QGIS master (i.e. baby-born 3.1), but I suspect and worry it's a regression which started prior to release of 3.0.

Steps to reproduce
  1. Load the attached test project
  2. Open the layer style panel for the roads_subset layer
  3. Set the labelling placement to "parallel"
  4. Observe QGIS going into endless rendering
  5. The only way to stop the rendering is to switch the placement back to curved or horizontal.
  6. Upon quitting, the QGIS process stays in memory

label_freeze.zip (323 KB) Mathieu Pellerin - nIRV, 2018-03-01 10:42 AM

Associated revisions

Revision a76fb0b4
Added by Nyall Dawson over 2 years ago

[pal] Fix invalid candidates created for parallel line labeling
mode when a closed linestring is too small for labels to fit
within feature

Fixes #18283

Revision 35527642
Added by Nyall Dawson over 2 years ago

[pal] Fix invalid candidates created for parallel line labeling
mode when a closed linestring is too small for labels to fit
within feature

Fixes #18283

(cherry-picked from a76fb0b)

History

#1 Updated by Giovanni Manghi over 2 years ago

  • Affected QGIS version changed from master to 3.1(master)

#2 Updated by Mathieu Pellerin - nIRV over 2 years ago

Oups, sorry, horizontal placement also results in infinite rendering.

#3 Updated by Mathieu Pellerin - nIRV over 2 years ago

  • Description updated (diff)

#4 Updated by Mathieu Pellerin - nIRV over 2 years ago

  • Description updated (diff)

#5 Updated by Mathieu Pellerin - nIRV over 2 years ago

  • Assignee set to Nyall Dawson

Reverting commit 2ab1e02 and commit dded4ab takes care of the regression.

#6 Updated by Nyall Dawson over 2 years ago

  • Status changed from Open to In Progress

#7 Updated by Nyall Dawson over 2 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

#8 Updated by Giovanni Manghi over 2 years ago

  • Resolution set to fixed/implemented

Also available in: Atom PDF