near-freeze in ObjectSnapper::_findCandidates with ~1000 obj
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Invalid
|
Critical
|
Buliabyak-users |
Bug Description
Steps to reproduce:
-open this file (2.6 Mb)
http://
- select the all the lines in the middle object at the
bottom of the drawing (many lines with arrows in a
circle: a trajectory), just next to the colored circles.
- move it with the mouse
Inkscape freezes and uses 100% CPU forever (at least
for the 5 minutes I left it running)
WARNING: this also freezes my X server on a remote X11
connection so it might freeze X on a local machine too.
I left the complete file because the freeze occurs with
it. sorry if it is big.
Buliabyak-users (buliabyak-users) wrote : | #1 |
Rwst (rwst) wrote : | #2 |
this comment is made to ensure the assignee is being mailed.
(cyreve found out that assigning a bug report does not
generate mail to the assignee)
Irisson (irisson) wrote : | #3 |
my personal impression on this is that, when I select
several objects at once I expect them to behave as a whole
rather than as a set of different objects. therefore, I
would expect the selection to snap only to _its_ bouding box
and its "nodes" (the four handles of the rectangular
selection box). this would make snapping more reliable
because, right now, when many objects are selected, the
selection virtually never snaps (or the snapping behavior is
erratic) because there is always another object/node near a
grid line. see attached document for an example.
BTW, the same is true for groups (and maybe even "more
true"): the group bouding box is correclty defined in this
respect but the nodes of the group are all the nodes of the
objects present in the group. I would expect them to be only
the four handles of the whole group in order to have
snapping to nodes behave correctly.
what about this?
Irisson (irisson) wrote : snapping_killer.svg | #4 |
Rwst (rwst) wrote : | #5 |
the problem is that you are trying to snap thousands of
nodes to thousands of objects, and this with every mouse
movement! there is no efficient algorithm for that because
there is no preferred direction in which to snap, nor are
there preferred nodes or objects. we could restrict the
number of objects being snapped to, by using only the
current layer but this is no solution in principle.
@irisson:"my personal impression on this is that, when I
select several objects at once I expect them to behave as a
whole rather than as a set of different objects."
In this case, you need another option in the desktop
preferences dialog because your expectation, although
natural, is not the only possible.
@bulia: Is there a function that computes the bbox of all
selected objects? If so, I propose to implement the
mentioned behaviour as default, leaving the option for after
release. However, this will not solve the problem of
grouping the same objects and "snap nodes to objects".
should we give a warning? in doc prefs? in the status bar?
Buliabyak-users (buliabyak-users) wrote : | #6 |
> Is there a function that computes the bbox of all
selected objects?
Yes, but we also have something more appropriate here: the
"convex hull" function which, given a bunch of points,
returns those points which are on the edge (hull) of the
point set. I think this is what must be used here, not only
by default but always. This function is somewhere in
snapping code, please try to find and use it.
Rwst (rwst) wrote : | #7 |
the problem with convex hull is that there are worst cases
(e.g. star-like or circle-like) where the number of nodes of
the convex hull appoximates the number of nodes of all
objects, giving the same behaviour, freezing the system. to
avoid this at all, I would propose switching to bbox
whenever the expected complexity (#(nodes) * #(surrounding
objects)) exceeds a certain fixed limit, say 10k.
also, I'm reassigning to Carl since he's back from the dead.
Buliabyak-users (buliabyak-users) wrote : | #8 |
No wonder it's freezing: on each move event (i.e. each
screen pixel of movement), and on each of the 1000+ selected
object's points, it finds bboxes of all of 2000+ objects in
the document. Crazy.
rwst: actually our "convex hull" class is phoney, it does
not do a real convex hull but just a bbox of a set of
points. Anyway, this is what was used before, but for some
reason Carl removed it in rev 10342 of seltrans.cpp. I
restored this, and did the same for bbox snapping too: now
it snaps only on the outer bbox of the entire selection, not
on all selected objects' bboxes. Finally I made recursion in
_findCandidates a bit less stupid so that it avoids getting
bbox of a group and then bboxes of all its children all over
again. All this sped this up enough to close this bug. It
still takes a few seconds to move the 1000 lines, but not
hours as before. Really, one shouldn't ever use object
snapping in such a file, even if it worked correctly (which
it does not).
Bug Importer (bug-importer) wrote : | #9 |
<a href="http://
informagiovaneb
href="http://
emiliaromagnari
href="http://
</a> http://
href="http://
volilowcostmessico </a> <a
href="http://
http://
href="http://
href="http://
annunciocaseemi
http://
href="http://
abbigliamentoon
href="http://
dizionarioarchi
href="http://
href="http://
http://
href="http://
<a href="http://
http://
href="http://
calendariocosta
href="http://
http://
href="http://
ecb9d11f1f0d222
Bug Importer (bug-importer) wrote : | #10 |
<a href="http://
venditapneumatico </a> http://
href="http://
</a> <a href="http://
traduzionegiurata </a>
http://
href="http://
</a> <a href="http://
</a> http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
downloadgamesfo
href="http://
</a> http://
href="http://
<a href="http://
</a> http://
href="http://
href="http://
http://
href="http://
710A707E65E7B4E
Bug Importer (bug-importer) wrote : | #11 |
<a href="http://
http://
href="http://
</a> <a href="http://
</a> http://
href="http://
lezioneelettrot
href="http://
http://
href="http://
href="http://
http://
href="http://
assicurazioneau
href="http://
http://
href="http://
href="http://
http://
href="http://
</a> <a href="http://
finanziamentoch
<a href="http://
recinzionicance
href="http://
enciclopediatre
http://
href="http://
aggiornamentoso
Bug Importer (bug-importer) wrote : | #12 |
<a href="http://
</a> http://
href="http://
href="http://
http://
href="http://
dirittideilavor
href="http://
http://
href="http://
href="http://
casalenellemarche </a>
http://
href="http://
<a href="http://
obibricolagegia
http://
href="http://
href="http://
http://
href="http://
usroboticssport
href="http://
assicurazionepienza </a> http://
href="http://
<a href="http://
http://
href="http://
informazionecom
Bug Importer (bug-importer) wrote : | #13 |
<a
href="http://
finanziamentofo
<a href="http://
</a> <a href="http://
http://
href="http://
</a> <a href="http://
</a> http://
href="http://
href="http://
http://
href="http://
dimensionedanza
href="http://
appuntidirittop
href="http://
href="http://
http://
href="http://
</a> <a href="http://
monopattinoscoppio </a> http://
href="http://
</a> <a href="http://
finanziamentopa
<a href="http://
6f8e3966d1ea6ff
Bug Importer (bug-importer) wrote : | #14 |
<a href="http://
</a> http://
href="http://
href="http://
</a> http://
href="http://
href="http://
http://
href="http://
hogtiedfuckingm
href="http://
</a> http://
href="http://
albergo3stellef
href="http://
http://
href="http://
</a> <a href="http://
http://
href="http://
bancapopolarede
href="http://
http://
href="http://
</a> <a href="http://
http://
href="http://
assicurazionefi
Bug Importer (bug-importer) wrote : | #15 |
<a href="http://
http://
href="http://
virginvaginaloo
href="http://
latinblowjobsfu
href="http://
<a href="http://
http://
href="http://
</a> <a href="http://
bralesslargenipples </a>
http://
href="http://
href="http://
</a> http://
href="http://
href="http://
http://
href="http://
prenotazionehot
href="http://
http://
href="http://
firsttimelesbia
href="http://
http://
href="http://
a405c0653202c1e
Bug Importer (bug-importer) wrote : | #16 |
Áåñïëàòíûå ÑÌÑêè <a href="http://
</a> è Free sms <a href="http://
http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
freepokergamedo
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
<a href="http://
cucinecomponibi
href="http://
href="http://
http://
href="http://
finanziamentoal
Bug Importer (bug-importer) wrote : | #17 |
<a href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
softwarepalmare
http://
href="http://
</a> <a href="http://
</a> http://
href="http://
href="http://
http://
href="http://
volibrasilelast
href="http://
http://
href="http://
<a href="http://
http://
href="http://
fotoannuncioann
href="http://
chirurgiaesteti
href="http://
70fcdb09b8b18b5
Bug Importer (bug-importer) wrote : | #18 |
<a href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
alessandromanzo
href="http://
http://
href="http://
traduzioneingle
href="http://
kelkooviaggioca
<a href="http://
href="http://
http://
href="http://
<a
href="http://
corsiformazione
http://
href="http://
</a> <a href="http://
</a> http://
href="http://
bd0e28eaccfa349
Bug Importer (bug-importer) wrote : | #19 |
<a href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
ass.html </a> <a href="http://
pornstars.html </a> http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
71b0d16f90c6ef2
Bug Importer (bug-importer) wrote : | #20 |
<a href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
df487ef8b49cead
Bug Importer (bug-importer) wrote : | #21 |
<a href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
6d02afe3993f735
Bug Importer (bug-importer) wrote : | #22 |
<a href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
</a> http://
href="http://
</a> <a href="http://
telechargementl
http://
href="http://
href="http://
sonneriedespera
http://
href="http://
<a href="http://
teamspeaknoobdo
href="http://
</a> <a href="http://
pinaraylinadamo
href="http://
</a> 5064a72d6d1acab
Bug Importer (bug-importer) wrote : | #24 |
962dab15fd76e68
href="http://
helenesegaramp3
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
<a href="http://
</a> http://
href="http://
celinedionmyhea
href="http://
http://
href="http://
indexapachemp3r
href="http://
http://
href="http://
href="http://
mp3playersamsun
http://
href="http://
href="http://
festplattemp3pl
http://
href="http://
indexparentdire
Bug Importer (bug-importer) wrote : | #27 |
2d96a1ab41548b7
href="http://
http://
href="http://
href="http://
</a> http://
href="http://
href="http://
prestitosanvito
<a href="http://
href="http://
http://
href="http://
href="http://
noleggioscooter
<a href="http://
</a> <a href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
75a742eec33669b
Bug Importer (bug-importer) wrote : | #29 |
233a178fc0e2679
href="http://
http://
href="http://
href="http://
http://
href="http://
href="http://
http://
href="http://
<a href="http://
siglatvmp3power
http://
href="http://
href="http://
trasportatoriol
href="http://
href="http://
http://
href="http://
obbligazionitas
href="http://
</a> http://
href="http://
href="http://
downloadsblocco
href="http://
2c9b7f801c901cb
Bug Importer (bug-importer) wrote : | #32 |
a052e91131d6812
href="http://
http://
href="http://
logosuoneriagra
href="http://
</a> http://
href="http://
href="http://
http://
href="http://
href="http://
</a> http://
href="http://
smeraldopietrap
href="http://
http://
href="http://
href="http://
arredamentouffi
<a href="http://
la7invasioniser
href="http://
http://
href="http://
</a> <a href="http://
finanziamentopa
http://
href="http://
f005eb0fc8b9ed3
Bug Importer (bug-importer) wrote : | #33 |
d1c01a86d6067d4
href="http://
pelle-buccia-
http://
href="http://
<a href="http://
oroscopo-
http://
href="http://
href="http://
http://
href="http://
perdita-
href="http://
nuova-lancia-
http://
href="http://
scarica-
samassi </a> http://
href="http://
<a href="http://
http://
href="http://
volo-barbarano-
href="http://
http://
href="http://
tavolo-
href="http://
passignano-
<a href="http://
ipod-shuffle-
Bug Importer (bug-importer) wrote : | #34 |
33f8792a94112b8
href="http://
http://
href="http://
<a href="http://
http://
href="http://
temasvoltodirit
href="http://
http://
href="http://
href="http://
sondaggioelezio
href="http://
softwaredemomas
href="http://
webdesignvalled
href="http://
</a> <a href="http://
svizzeraristorante </a> http://
href="http://
facoltaarchitet
href="http://
barcellonaitine
href="http://
href="http://
http://
href="http://
a43a72ba8ed5dce
Bug Importer (bug-importer) wrote : | #35 |
0de10ab4887f57d
href="http://
http://
href="http://
</a> <a href="http://
fotogratisdises
http://
href="http://
href="http://
http://
href="http://
<a href="http://
http://
href="http://
href="http://
palestrapugilat
<a href="http://
</a> <a href="http://
agriturismosanb
http://
href="http://
</a> <a href="http://
http://
href="http://
href="http://
http://
href="http://
ristorantecentr
Bug Importer (bug-importer) wrote : | #37 |
42f5675dd27ee27
href="http://
calcolare-
http://
href="http://
href="http://
tornei-
http://
href="http://
mostra-
href="http://
pompe-idraulich
http://
href="http://
<a href="http://
ragazzo-
href="http://
<a href="http://
http://
href="http://
giovanni-
href="http://
http://
href="http://
href="http://
http://
href="http://
<a href="http://
</a> http://
href="http://
donna-giappones
Bug Importer (bug-importer) wrote : | #38 |
b41e9cf04818726
href="http://
http://
href="http://
<a href="http://
http://
href="http://
href="http://
sacchettiaspira
http://
href="http://
diskeeperprofes
venditatenda </a> http://
href="http://
<a href="http://
http://
href="http://
basketgiovanile
href="http://
http://
href="http://
href="http://
catalogoarticol
http://
href="http://
africanartdidac
href="http://
obbligazionegia
href="http://
appartamentomon
Bug Importer (bug-importer) wrote : | #39 |
8868a2312293ffd
href="http://
</a> http://
href="http://
massaggiatrici-
href="http://
pirandello-
http://
href="http://
</a> <a href="http://
equitazione-
http://
href="http://
<a href="http://
http://
href="http://
immobiliare-
href="http://
http://
href="http://
video-masturbaz
href="http://
immagine-
href="http://
controllo-
href="http://
</a> http://
href="http://
<a href="http://
</a> http://
href="http://
07723c7e7aa5b5b
Bug Importer (bug-importer) wrote : | #40 |
2b4d8d680103526
href="http://
http://
href="http://
<a href="http://
http://
href="http://
href="http://
http://
href="http://
agriturismo-
href="http://
http://
href="http://
porta-scorrevol
href="http://
http://
href="http://
<a href="http://
http://
href="http://
href="http://
hotel-residence
http://
href="http://
<a href="http://
direttiva-
http://
href="http://
rete-neurali-
Bug Importer (bug-importer) wrote : | #41 |
b193051cb6ca5a0
href="http://
http://
href="http://
annuncio-
href="http://
hotel-economici
http://
href="http://
veicolo-
href="http://
http://
href="http://
href="http://
ricetta-
http://
href="http://
sale-meeting-
href="http://
http://
href="http://
carta-nautica-
href="http://
http://
href="http://
merano-
href="http://
</a> http://
href="http://
rilassamento-
href="http://
la-leva-
href="http://
3d9214108f7de8f
Bug Importer (bug-importer) wrote : | #42 |
d81d6e6f6e1277b
href="http://
campionato-
href="http://
</a> <a href="http://
hotel-eleganti-
http://
href="http://
href="http://
ostetricia-
http://
href="http://
edimburgo-
href="http://
</a> http://
href="http://
</a> <a href="http://
http://
href="http://
lastra-
href="http://
hotel-economici
http://
href="http://
lavoro-
href="http://
http://
href="http://
href="http://
pronostico-
http://
href="http://
volo-san-
Bug Importer (bug-importer) wrote : | #44 |
ca8470546c0e377
href="http://
</a> http://
href="http://
<a href="http://
distretto-
<a href="http://
gara-ballo-
href="http://
intervento-
http://
href="http://
</a> <a href="http://
gioco-scaricare
<a href="http://
architettura-
href="http://
http://
href="http://
href="http://
http://
href="http://
finanziamento-
href="http://
carta-geografic
http://
href="http://
vacanza-
href="http://
albergo-
http://
href="http://
414d739bbb8eab8
Bug Importer (bug-importer) wrote : | #45 |
229c3f17c0fbb46
href="http://
http://
href="http://
href="http://
foto-gratis-
http://
href="http://
<a href="http://
http://
href="http://
href="http://
matematica-
href="http://
href="http://
</a> http://
href="http://
hotel-tre-
href="http://
http://
href="http://
regolabarba-philips </a> <a
href="http://
</a> http://
href="http://
href="http://
quartiere-
http://
href="http://
de193be5b8f79b7
Bug Importer (bug-importer) wrote : | #46 |
42d4be07702f715
href="http://
primarivoluzion
http://
href="http://
caricabatteriaw
href="http://
assicurazionevi
href="http://
href="http://
ilprincipemezzo
http://
href="http://
href="http://
http://
href="http://
href="http://
villafrancadiverona </a> http://
href="http://
rivestimentiant
href="http://
agriturismofran
http://
href="http://
<a href="http://
</a> http://
href="http://
href="http://
prenotazionehot
<a href="http://
previsionidelte
Bug Importer (bug-importer) wrote : | #47 |
5a901ee8004dd86
href="http://
masterizzarecd1
http://
href="http://
<a href="http://
pastiglieantica
href="http://
vogatoriattrezz
href="http://
http://
href="http://
prenotazionealb
href="http://
http://
href="http://
controllolivell
href="http://
affittoappartam
<a href="http://
</a> <a href="http://
</a> http://
href="http://
<a href="http://
viaggiooffertab
http://
href="http://
</a> <a href="http://
ludmillaradchen
<a href="http://
42089bebdab1b6
Bug Importer (bug-importer) wrote : | #48 |
61197b202589a8d
href="http://
http://
href="http://
valutazione-
href="http://
</a> http://
href="http://
href="http://
finanziamento-
href="http://
href="http://
prodotto-
href="http://
href="http://
http://
href="http://
href="http://
viaggi-
href="http://
<a href="http://
portoni-
http://
href="http://
software-
href="http://
http://
href="http://
montaggio-
Bug Importer (bug-importer) wrote : | #49 |
0cbdc89162e8412
href="http://
giochi-
http://
href="http://
<a href="http://
assicurazione-
http://
href="http://
<a href="http://
http://
href="http://
traduttore-
href="http://
scarica-
http://
href="http://
href="http://
annuncio-
<a href="http://
chicco-
href="http://
calendario-
http://
href="http://
</a> <a href="http://
fischietti-
href="http://
</a> <a href="http://
esseri-non-viventi </a> http://
href="http://
23ebb47721ba598
Bug Importer (bug-importer) wrote : | #50 |
http://
href="http://
http://
http://
href="http://
http://
http://
href="http://
http://
http://
href="http://
http://
http://
href="http://
http://
http://
href="http://
http://
http://
href="http://
http://
http://
href="http://
http://
http://
href="http://
http://
http://
href="http://
http://
Bug Importer (bug-importer) wrote : | #51 |
http://
[url]http://
href="http://
milano it affitto casa cagliari</a>
http://
[url]http://
href="http://
fuoco bologna sicilia anas prezziario lazio anas prezziario</a>
http://
[url]http://
href="http://
internet vibrazione corpo umano</a>
http://
[url]http://
<a href="http://
auto noleggio breuil cervinia</a>
http://
[url]http://
href="http://
donna nuda volo aereo cagliari napoli</a>
http://
[url]http://
href="http://
piombo famigliachibikko remi to meikenkapi</a>
http://
[url]http://
href="http://
pasticceria</a>
http://
[url]http://
href="http://
acciaieria</a>
http://
[url]http://
href="http://
jolly hotel ligure auto usata opel piemonte</a>
Bug Importer (bug-importer) wrote : | #52 |
http://
href="http://
[url]http://
[url=http://
[u]http://
This is caused by snapping code frantically trying to snap :ObjectSnapper: :_findCandidate s. Perhaps there
~1000 selected objects. So I'm assigning this to Carl. This
is obviously unacceptable - it hangs for about half an hour
in Inkscape:
should be a limit on the number of nodes/objects after which
it would not try to snap them. Or there's something wrong
with the findCandidates algorithm - I can't imagine why it's
so slow even on a thousand objects.
To the submitter: workarounds for this are: 1) use keyboard
move by arrow keys (it never snaps); or 2) disable all kinds
of snapping in prefs.