2

Я установил PovRay 3.7 на сервер Ubuntu 14.04, используя пакет povray по умолчанию, чтобы поэкспериментировать с ним в качестве инструмента для динамической генерации графики для веб-сайта.

Какой бы скрипт я ни пробовал, он "зависает". Я использую кавычки, потому что я не знаю, висит ли это на самом деле; кажется, что это не заканчивается без небольшого вмешательства пользователя.

Я запускаю скрипт, используя povray +Ifilename.pov , затем он показывает прогресс до Antialiasing......Off заявление и больше ничего не делает. В каталоге есть дополнительный filename-state файла.

Однако, если я использую ctrl+z то fg , он немедленно продолжается и завершается (обычно требуется время трассировки ~ 1 сек) и создает правильно отображаемый файл filename.png .

Тем не менее, это происходит только на последовательных прогонах поврей. Первый запуск после перезагрузки сервера проходит без проблем, только каждый запуск после первого (до следующей перезагрузки сервера) показывает это поведение.

Я пробовал несколько примеров сценариев из руководства и из внешних источников; они все действуют одинаково.

Кто-нибудь знает, что происходит и что я могу сделать, чтобы это исправить?

strace povray -i{scriptname} создает бесконечный список из них:

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

1 ответ1

1

отказ
Я не уверен, что этот ответ квалифицируется как ответ, но я полагаю, что уважительное «Я не могу воспроизвести вашу проблему» также является своего рода ответом. Кроме того, я хотел включить некоторую информацию, которая не помещалась бы в комментарии.

Я не могу воспроизвести проблему
Я не могу воспроизвести проблему, используя Ubuntu на виртуальной коробке. Я использовал Ubutu 14.04 LTS x86_64, все обновления (за 13 ноября 2014 г.) применены, базовая установка сервера с ядром 3.13.0-39-generic и POVRAY из менеджера пакетов Ubuntu. Если у вас есть другая версия, кроме этой, пожалуйста, дайте мне знать (в комментарии), и я попробую еще раз.

Вывод моей Povray --version - это:

POV-Ray 3.7.0.unofficial

This is an unofficial version compiled by:
 Felix Geyer <debfx@ubuntu.com> 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

Я попытался отследить несколько файлов примеров .pov, и все они работали безупречно. Например, это мой вывод (немного очищен) для 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 <debfx@ubuntu.com> 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

Причина проблемы и (возможное) "решение"
Основываясь на входных данных от strace , я бы сказал, что ваш povray также компилируется с использованием флага -pthread , и каким-то образом один дочерний процесс завершается, не освобождая futex и, таким образом, блокируя основной поток povray. Ваш strance выдал выходные данные основного потока povray, но он не включал в себя информацию о последовательных процессах. Если вы действительно хотите знать, что происходит, вы можете попробовать ps -efL | grep povray (больше информации в этом блоге), который может дать более глубокое понимание того, что блокирует ваш povray.

Если вы действительно хотите решить эту проблему, я предлагаю вам сначала попытаться получить версию povray -dev и скомпилировать ее самостоятельно на своей машине, чтобы узнать, имеет ли это значение. Кроме того, вы можете получить исходные файлы из Povray и попробовать.

Наконец, вы можете оставить сообщение об ошибке в Ubuntu, чтобы они могли на него взглянуть.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .