Povray “trava” no Ubuntu 14.04

2

Instalei o PovRay 3.7 em um servidor Ubuntu 14.04 usando o pacote padrão "povray" para experimentá-lo como uma ferramenta para gerar dinamicamente gráficos para um site.

Qualquer script que eu tente, fica "pendurado". Eu uso citações porque não sei se isso está realmente pendurado; simplesmente não parece terminar sem uma pequena intervenção do usuário.

Eu inicio um script usando povray +Ifilename.pov , ele mostra seu progresso até uma declaração Antialiasing......Off e não faz mais nada. No diretório, há um arquivo filename-state extra.

No entanto, se eu usar ctrl+z then fg , ele imediatamente continua e termina (geralmente reivindicando um tempo de rastreio de ~ 1 segundo) e cria um arquivo filename.png corretamente renderizado.

No entanto, isso só acontece em execuções consecutivas de povray. A primeira execução após a reinicialização do servidor é perfeita, apenas todas as execuções após a primeira (até a próxima reinicialização do servidor) mostram esse comportamento.

Eu tentei vários scripts de exemplo do manual e de fontes externas; todos eles agem da mesma maneira.

Alguém sabe o que está acontecendo e o que eu posso fazer para corrigir isso?

strace povray -i{scriptname} produz uma lista interminável destes:

futex(0x19c7988, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x19c79b4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 729, {1415657359, 593721000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
futex(0x19c7988, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x19c79b4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 731, {1415657359, 794168000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
futex(0x19c7988, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x19c79b4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 733, {1415657359, 994601000}, ffffffff
    
por Martijn 31.10.2014 / 21:27

1 resposta

1

Aviso Legal
Não tenho certeza se esta resposta se qualifica como uma resposta, mas acho que um "Eu não consigo reproduzir seu problema" é também uma espécie de resposta. Além disso, queria incluir algumas informações, que não caberiam em um comentário.

não consigo reproduzir o problema
Não consigo reproduzir o problema usando o Ubuntu em uma caixa virtual. Eu usei o Ubutu 14.04 LTS x86_64 todas as atualizações (por 13 de novembro de 2014) aplicadas, a instalação básica do servidor com o kernel 3.13.0-39-generic e o POVRAY do gerenciador de pacotes do Ubuntu. Se você tem uma outra versão, por favor me avise (em um comentário), e vou tentar novamente.

A saída do meu Povray --version é:

POV-Ray 3.7.0.unofficial

This is an unofficial version compiled by:
 Felix Geyer <[email protected]> for Debian <www.debian.org>
 The POV-Ray Team is not responsible for supporting this version.

Copyright 1991-2013 Persistence of Vision Raytracer Pty. Ltd.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Built-in features:
  I/O restrictions:          enabled
  X Window display:          enabled (using SDL)
  Supported image formats:   gif tga iff ppm pgm hdr png jpeg tiff openexr
  Unsupported image formats: -

Compilation settings:
  Build architecture:  x86_64-pc-linux-gnu
  Built/Optimized for: x86_64-pc-linux-gnu
  Compiler vendor:     gnu
  Compiler version:    g++ 4.8
  Compiler flags:      -pipe -Wno-multichar -Wno-write-strings -fno-enforce-eh-specs -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -O3 -pthread

Eu tentei raytrace vários arquivos de exemplo .pov, que tudo funcionou perfeitamente. Por exemplo, esta é minha saída (limpa um pouco) para bezier.pov:

Persistence of Vision(tm) Ray Tracer Version 3.7.0.unofficial (g++ 4.8 @ x86_64-pc-linux-gnu)
This is an unofficial version compiled by: Felix Geyer <[email protected]> for Debian <www.debian.org>
The POV-Ray Team is not responsible for supporting this version.
POV-Ray is based on DKBTrace 2.12 by David K. Buck & Aaron A. Collins
Copyright 1991-2013 Persistence of Vision Raytracer Pty. Ltd.
----------------------------------------------------------------------------
<<...cut some credits here...>>
----------------------------------------------------------------------------
Parser Options
  Input file: /usr/share/doc/povray/examples/objects/bezier.pov
Remove bounds........On 
Split unions.........Off
Library paths:
    /usr/share/povray-3.7
    /usr/share/povray-3.7/ini
    /usr/share/povray-3.7/include
Clock value:    0.000  (Animation off)
Image Output Options
Image resolution.....800 by 600 (rows 1 to 600, columns 1 to 800).
Output file........../usr/share/doc/povray/examples/objects/bezier.png, 24 bpp PNG
Dithering............Off
Graphic display......On  (gamma: sRGB)
Mosaic preview.......Off
Continued trace......Off
Information Output Options
All Streams to console..........On 
Debug Stream to console.........On 
Fatal Stream to console.........On 
Render Stream to console........On 
Statistics Stream to console....On 
Warning Stream to console.......On 

==== [Parsing...] ==========================================================
Parser Statistics
Finite Objects:            1
Infinite Objects:          1
Light Sources:             1
Total:                     3

Parser Time
  Parse Time:       0 hours  0 minutes  0 seconds (0.011 seconds)
  using 1 thread(s) with 0.010 CPU-seconds total
  Bounding Time:    0 hours  0 minutes  0 seconds (0.000 seconds)
  using 1 thread(s) with 0.000 CPU-seconds total
----------------------------------------------------------------------------
Render Options 
  Quality:  9
  Bounding boxes.......On   
  Bounding threshold: 3
  Antialiasing.........Off
----------------------------------------------------------------------------
Render Statistics
Image Resolution 800 x 600
Pixels:           480000   
Samples:               0   
Smpls/Pxl: 0.00
Rays:             480000   
Saved:                 0   
Max Level: 1/5

Ray->Shape Intersection          Tests       Succeeded  Percentage
 Bicubic Patch                   725967          122319     16.85
 Plane                           959954          480000     50.00
 Bounding Box                    959954          627633     65.38
----------------------------------------------------------------------------
Shadow Ray Tests:            479996   
Succeeded:                    46
Shadow Cache Hits:               42
----------------------------------------------------------------------------
Render Time:
Photon Time:      No photons
Radiosity Time:   No radiosity
Trace Time:       0 hours  0 minutes  2 seconds (2.185 seconds)
using 4 thread(s) with 1.683 CPU-seconds total
----------------------------------------------------------------------------
POV-Ray finished

A causa do problema e uma (possível) "solução"
Com base na entrada do strace , eu diria que o seu povray também é compilado usando o -pthread flag, e de alguma forma um processo filho termina sem liberar o futex e, assim, travar o thread principal do povray. Seu strance deu a saída do thread principal do povray, mas não incluiu strace info dos processos chiled. Se você realmente quiser saber o que está acontecendo, tente ps -efL | grep povray (mais informações em este blog ), que pode dar mais algumas dicas sobre o que está bloqueando seu povray.

Se você realmente quiser resolver isso, sugiro que primeiro tente obter a versão -dev do povray e compile você mesmo em sua máquina e veja se isso faz diferença. Alternativamente, você pode pegar os arquivos fontes do Povray e tentar.

Finalmente, você pode querer deixar um relatório de erros no Ubuntu , para que eles possam dar uma olhada.

    
por 13.11.2014 / 16:44

Tags