Project

General

Profile

Some mistakes when updating issue's parent

Added by Alice Z about 10 years ago

Hi,

I meet a strange phenomenon when the issue tree is becoming larger and larger.

For example, there is an issue with many sub-issues in my redmine. The issues' tree is very complex, like:

Project
|-a
|  |-b
|  | |-c
|  | | |-d
|  |- ...
|-...

The tree's depth is more than 6 and the entire tree has about 200 issues.

Question 1:
I create an issue "e" and set its parent issue is 'a'. In gantt diagram, issue 'e' is under issue 'd'.
And on page of issue 'e', the parent issues shows a,b,c,d.
Is it a bug?

Question 2:
When I want to update the parent of issue 'e' from 'd' to 'a', the browser suspends for a long time and I have to stop it.
The server development log shows the following information for thousand times:

......
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 341 AND `issues`.`rgt` <= 280) AND (`issues`.id != 51146) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 1 AND `issues`.`rgt` <= 214) AND (`issues`.id != 49315) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 1 AND `issues`.`rgt` <= 214) AND (`issues`.id != 49315) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 341 AND `issues`.`rgt` <= 280) AND (`issues`.id != 51146) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 341 AND `issues`.`rgt` <= 280) AND (`issues`.id != 51146) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 341 AND `issues`.`rgt` <= 280) AND (`issues`.id != 51146) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 341 AND `issues`.`rgt` <= 280) AND (`issues`.id != 51146) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 1 AND `issues`.`rgt` <= 214) AND (`issues`.id != 49315) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 1 AND `issues`.`rgt` <= 214) AND (`issues`.id != 49315) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 341 AND `issues`.`rgt` <= 280) AND (`issues`.id != 51146) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 1 AND `issues`.`rgt` <= 214) AND (`issues`.id != 49315) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 1 AND `issues`.`rgt` <= 214) AND (`issues`.id != 49315) ORDER BY `issues`.`lft`
  CACHE (0.0ms)  SELECT `issues`.* FROM `issues` WHERE `issues`.`root_id` = 49315 AND (`issues`.`lft` >= 341 AND `issues`.`rgt` <= 280) AND (`issues`.id != 51146) ORDER BY `issues`.`lft`
......

And the update fails. Why does it happen?

Environment:
  Redmine version                          2.3.1.stable
  Ruby version                             1.9.3 (i386-mingw32)
  Rails version                            3.2.13
  Environment                              production
  Database adapter                         Mysql2
Redmine plugins:
  no plugin installed

Thanks in advance!!!