2012-06-05 19 views
5

Używanie Django 1.4/Python 2.7/reportlab (wersja open source) do generowania pdf.Rozwiązywanie problemów z raportem heisenbug

Rzeczy do tej pory działały naprawdę świetnie. Poprzednio generowanie PDF (jak w żądanym zwróconym/pobranym pliku PDF) było na Django 1.3 i nie było otwarte dla publiczności. Ulepszono i udostępniono nową funkcję na wielu stronach, a teraz zaczynają mieć problemy.

Dostaję "przypadkowe" problemy (jak na przykład w dziennikach pojawiają się wyjątki od czasu do czasu), ale nigdy nie byłem w stanie samodzielnie odtworzyć problemów (rzeczy działają przez większość czasu).

Co mam jest następujący rodzaj błędów, które zawsze się dzieje w parach

Exception Value: ParaParser instance has no attribute '_seq' 
    Exception Location: /home/tss/lib/python2.7/reportlab-2.5-py2.7-linux-i686.egg/reportlab/platypus/paraparser.py in _complete_parse, line 1061 

a następnie

Exception Value: 'NoneType' object has no attribute 'close' 
    Exception Location: /home/tss/lib/python2.7/reportlab-2.5-py2.7-linux-i686.egg/reportlab/lib/xmllib.py in close, line 521 

Zważywszy, że mam trudny czas odtwarzania tego i nie wiem, czy problemem moja strona lub reportaż - jestem otwarty na sugestie, w jaki sposób rozwiązać ten problem (czy może to być problem z synchronizacją, jak w wielu generujących conccurently lub po prostu zwykły błąd lub ...) ???

Odpowiedz

2

Umieszczono to pytanie na liście dyskusyjnej reportlab, a Reportlab nie jest bezpieczny dla wątków.

Tak więc każde użycie reportlab, w którym pojawiają się sporadyczne problemy i są uruchomione w środowisku aplikacji wielowątkowych/aplikacji sieciowych, spowoduje naprawdę bardzo dziwne problemy z tego powodu.

Teraz muszę się zorientować, co do zastąpienia ReportLab z, hmm ....

/Jens

+0

żadnego postępu na ten temat? Czy wypróbowałeś 'pycairo'? – Tadeck

+1

Nadal za pomocą Reportlab, rozmawiał z nimi bezpośrednio i skończyło się robić reset ich konfiguracji w każdym widoku przed wygenerowaniem raportów PDF i to rozwiązało rzeczy: rl_config._reset() –

+0

Czy ma jakieś skutki uboczne? Jeśli nie jest to bezpieczne dla wątków, czy ma to wpływ na pliki PDF, które zaczęły generować wcześniej (ale nadal nie zostały zakończone)? – Tadeck

Powiązane problemy