unzuverlässiges internet + datenupdate = hänger

Ideen, wie TV-Browser verbessert werden kann
niroschlosser
Gold Member
Beiträge: 416
Registriert: 21 Jan 2006, 16:02
Wohnort: Wien

Re: unzuverlässiges internet + datenupdate = hänger

Beitrag von niroschlosser » 24 Okt 2013, 08:28

Moin uzi, frage an Dich. welchen virenscanner verwendest Du?
W7 64Bit Sp1, Java 8-111 32+64Bit

uzi
Site Admin
Beiträge: 1911
Registriert: 02 Jul 2009, 14:32

Re: unzuverlässiges internet + datenupdate = hänger

Beitrag von uzi » 24 Okt 2013, 08:43

office scan und nein, darauf habe ich keinen einfluss.

uzi
Site Admin
Beiträge: 1911
Registriert: 02 Jul 2009, 14:32

Re: unzuverlässiges internet + datenupdate = hänger

Beitrag von uzi » 24 Okt 2013, 09:48

hab gerade mal ein paar min in den sourcen rumgekramt und ich bin ehrlich gesagt nicht sicher, ob DownloadManager.runDownload wirklich threadsafe ist. ich denke, es könnte hier durchaus passieren, dass der thread unterbrochen wird, wenn er gar nicht schläft. das wäre ansich kein problem, aber wenn das in einem ungünstigen moment passiert, nämlich direkt bevor der thread sich wieder für ewigkeiten schlafen legt, hat man evtl genau den von mir beobachteten zustand. nämlich dann, wenn das beim letzten aktiven dl passiert. dann kommt keine interruptedException mehr und der dl-thread schläft für 2^63 millisekunden. ich spare mir jetzt mal auszurechnen, wie viele jahre das sind :D.

vielleicht benutzt man besser thread.join? scheint mir sicherer...

[edit] http://stackoverflow.com/questions/7502 ... ng-threads <- auch ne schöne lösung für das problem mit nem thread pool, die möglicherweise auch gleich zu weniger code im tvb führt. immer ne gute idee das rad nicht neu zu erfinden.

ds10
Site Admin
Beiträge: 16565
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: unzuverlässiges internet + datenupdate = hänger

Beitrag von ds10 » 24 Okt 2013, 11:33

Naja, wenn man sich die Historie des DownloadManagers ansiehst, dann wird man feststellen, dass der schon praktisch seit Beginn von TV-Browser nur ganz wenigen Änderungen unterlag. Und wenn etwas grundsätzlich funktioniert (also nur in Ausnahmefällen mal nicht) dann ändert man ja auch nichts. An anderen Stellen wird ja schon ein ThreadPool verwendet.

Bevor ich da jetzt große Änderungen vornehme, die wieder andere Probleme produzieren könnten, ist es das Einfachste die Wartezeit in den Sekundenbereich zu verlegen, dann wartet TV-Browser auch nicht ewig.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser

uzi
Site Admin
Beiträge: 1911
Registriert: 02 Jul 2009, 14:32

Re: unzuverlässiges internet + datenupdate = hänger

Beitrag von uzi » 24 Okt 2013, 11:41

wenn das denn wirklich das problem ist... so ganz sicher bin ich mir bei so nebenläufigkeitsgeschichten ja nie. komisch auch, dass anscheinend nur ich das problem habe. und das hauptsächlich auf einem meiner rechner.

v6ph1
Site Admin
Beiträge: 1236
Registriert: 13 Jan 2008, 05:07
Wohnort: Radebeul

Re: unzuverlässiges internet + datenupdate = hänger

Beitrag von v6ph1 » 24 Okt 2013, 13:26

Eine weitere Möglichkeit gibt es noch:
mActiveThreadCount nutzt zwar nur ++ bzw. --, aber auch das ist nicht atomic.
Parallelität führt dann zu merkwürdigen Zuständen.

Wenn diese Variable dann !=0, dann wird trotz Interrupt weiter gewartet.
Dafür gibt es u.a. einen AtomicInteger.

@uzi:
Da spielen sehr viele Punkte rein - zumal für die o.g. Variable nur die Unterbrechung während des Increment/Decrement relevant ist.
Hintergrundlast, Taktfrequenzen und die Latenzen der Speicher sind da schon sehr Systemspezifisch.
Das ist aber schon eher ein Fall für die Chaostheorie.

@ds10:
Ich würde 2 Maßnahmen kombinieren:
1. mActiveThreadCount immer mit synchronized kapseln oder AtomicInteger nutzen
2. Wartezeit auf 1s runtersetzen.

-- v6ph1

ds10
Site Admin
Beiträge: 16565
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: unzuverlässiges internet + datenupdate = hänger

Beitrag von ds10 » 24 Okt 2013, 15:39

Ich habe das jetzt einfach mal entsprechend geändert, mit 5 Sekunden Wartezeit und AtomicInteger.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser

Antworten