You are not logged in.

Dear visitor, welcome to Dreamboard. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Wednesday, January 27th 2010, 11:04pm

"Too many open files" wegen ePicLoad

Hallo zusammen

Seit Tagen kämpfe ich schon mit diesem Fehler. Ich habe lokal auf der Dreambox eine Bild-Datei die sich alle 100ms oder schneller aktualisiert. Ich möchte nun diese auf einem Screen anzeigen lassen und so schnell es geht aktualisieren. Dies geschieht mit ePicLoad und läuft eigentlich super. Ich kriege ein flüssiges Bild hin! Bis die Kiste nach 2,5 Minuten abstürzt. GSoD! (Green Screen of Death)

Fehler:
([Failure instance: Traceback (failure with no frames): : [Errno 24] Too many open files: /......'])

Es scheint so als ob ePicLoad das Bild nach dem Lesen nicht mehr richtig schliesst! Ich habe in der Konsole die Anzahl der offenen Dateien ausgegeben und der Zähler steigt beim Laden der Bilder ins Unermessliche!

Folgender Code habe ich dafür geschrieben:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
...
self.setupPicLoader()
self.onLayoutFinish.append(self.layoutFinished)

def setupPicLoader(self):
	self.picload = ePicLoad()
	self.picload.PictureData.get().append(self.imageLoaded)
	sc = AVSwitch().getFramebufferScale()
	self.picload.setPara((400, 300, sc[0], sc[1], False, 1, '#00000000'))


def imageLoaded(self, picInfo = None):
	ptr = self.picload.getData()
	if ptr is not None:
		self["img"].instance.setPixmap(ptr.__deref__())
	self.picload.startDecode(Settings.TMP_STREAM_NAME + "." + self.imagetype)


def layoutFinished(self):
	self.setTitle(self.mainTitle)
	if config.plugins.InfoServer.scaleImage.value and self.imagetype.lower() == "jpg":
		if self.doRefreshing:
			self.picload.startDecode(Settings.TMP_STREAM_NAME + "." + self.imagetype)
...



Ich habe tausende von Plugins untersucht, wie sie die Bilder laden und ich kann leider keinen Unterschied erkennen. Ich habe viel experimentiert, doch schlussendlich hat nichts genützt. Könnte das allenfalls ein Fehler von Enigma sein?

Gruss

2

Thursday, January 28th 2010, 7:56am

Das habe ich beim Erstellen meines PornCenter Plugins auch gehabt. Schau mal hier rein:
http://schwerkraft.elitedvb.net/plugins/…enigma2-plugins

Probier mal, nach Anzeigen des Bilds das ePicLoad zu löschen und neu zu erstellen. Evtl. hilft das auch bei dir.
MfG Ali
DM8000 | DM8000 | DM500HD | DM500HD | DM7020S

Source code

1
2
3
4
5
6
#!/bin/sh
while [ 1 ]
do
	echo "i love my dreams!!!"
	sleep 1
done

3

Thursday, January 28th 2010, 2:48pm

Vielen Dank für deine Antwort. Hat bei mir leider nichts genützt, obwohl ich alles genau nach deinem Plugin umgestellt habe.

4

Thursday, January 28th 2010, 5:12pm

Hi,

das scheint in der Tat ein bug zu sein.. nach meinem ersten blick wohl irgendwo in der jpeglib. Hab aber noch nicht weiter geschaut.. und auch gerade wenig Zeit.

Aber danke für den Report.. habs in unseren Bugtracker eingetragen.

cu

5

Monday, October 11th 2010, 5:02pm

Any further news on this bug?
Is there a work-around in the meantime?

I am suffering the same problems with the plugin I am writing. I have checked and double checked that all file objects are closed and deleted.

I can shed a bit more light on the bug:
I changed the call ePicLoad::getThumbnail() to startDecode instead and the file leak went away. So the problem is in getThumbnail().

Note: AliAbdul1978's link does not work.

This post has been edited 1 times, last edit by "shumifan50" (Oct 12th 2010, 2:51am)