MantisBT

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000995VCMIOtherpublic2012-06-07 17:352012-06-11 09:56
ReporterRisto 
Assigned ToIvan 
PriorityhighSeveritycrashReproducibilitysometimes
StatusclosedResolutionduplicate 
PlatformLinuxOSLubuntuOS Version12.04
Product Version0.89 
Target VersionFixed in Version 
Summary0000995: The names of the sprites and data files in any given case.
DescriptionThe names of the sprites and data files in any given case, which leads to systematic errors when searching for files on Unix-systems and, consequently, the failure game. Required to bring all the file names to lower case, or (preferably) to organize a case-insensitive search, and returns an error, while in the directory two or more of the same name files.
TagsNo tags attached.
Attached Files? file icon PortraitsLarge.json [^] (7,246 bytes) 2012-06-09 17:43
? file icon PortraitsSmall.json [^] (7,246 bytes) 2012-06-09 17:43

- Relationships
duplicate of 0000994closedTow Failed to rewrite autosave. 

-  Notes
(0002620)
Ivan (developer)
2012-06-07 17:50

Files in Data/ and Sprites/ directories are case-insensitive so sprites\data files should be OK.

Can you name files that causing this problem?

I'm on Linux and don't have any case-sensitivity issues with VCMI.
(0002621)
Risto (reporter)
2012-06-07 17:53
edited on: 2012-06-07 18:37

Example:

Error in file reading: /usr/local/share/vcmi/Data/ZVS/LIB1.RES/E_SPBLIND
XIO: fatal IO error 0 (Success) on X server ":0.0"
      after 1410 requests (1410 known processed) with 0 events remaining.
Killing console... zsh: segmentation fault vcmiclient
vcmiserver: /usr/include/boost/thread/pthread/condition_variable_fwd.hpp:46: boost::condition_variable::~condition_variable(): Assertion `!pthread_mutex_destroy(&internal_mutex)' failed.
Aborted

There is a file /usr/local/share/vcmi/Data/zvs/Lib1.res/E_SPBLIND.bmp As you can see, the wrong case and dropped the file extension.

Error in file reading: /usr/local/share/vcmi/Sprites/PORTRAITSSMALL
zsh: segmentation fault vcmiclient

There is a file /usr/local/share/vcmi/Sprites/PortraitsSmall.json

File CreWin1.pcx requested by the client, as CreWin1.pcx and CREWIN1.PCX. The regularity of this bug to track failed.

Аналогичная проблема и с прочими файлами данных, к примеру, -- с mp3. Переименование проблемных файлов, конечно, решает вопрос, но, во-первых, ВСЕ файлы прописаны в совершенно произвольном регистре, иногда без расширения, а во-вторых, как я написал выше, клиент иногда ищет один и тот же файл в разном регистре. Так что проблему надо решать кардинально.

(0002623)
Ivan (developer)
2012-06-07 19:01

С mp3 это вполне возможно. Там файлы должны быть в определенном регистре.

Со всем, что в папках Data и Sprites проблем быть не должно. При запуске клиент запоминает имена всех файлов в папке и их реестр/расширение.

"Error in file reading" может возникнуть:
1) после запуска клиента этот файл переименовали или переместили
2) файл недоступен для чтения (стоит проверить права доступа)

Если файл не найден, то ошибка выдается другая ("Failed to find file"). Тут файл при запуске нашелся, но прочитать из него ничего не вышло.
(0002624)
Risto (reporter)
2012-06-07 19:25
edited on: 2012-06-07 19:26

Проблема в том, что после переименования файла, связанный с ним баг исчезает. Проверено на PortraitsSmall.json и PortraitsLarge.json (имена файлов переведены в верхний регистр, расширение отброшено). Если мне скажут, где в сырцах искать кусок, отвечающий за запоминание -- могу посмотреть, возможно пойму, от чего глюк.

Справедливости ради стоит отметить, что первая ошибка (которая XIO: fatal IO error) всплывает и в официальной Linux-версии Героев, от Lokigames (только имя файла другое).

(0002626)
Risto (reporter)
2012-06-07 20:29
edited on: 2012-06-07 20:31

Только что воспроизвёл баг. Вылезает в момент окончания боя. Для чистоты эксперимента все три раза нападал на один и тот же отряд. Клиент запускал под рутом, чтобы исключить любые проблемы с правами.

Первая попытка:
Error in file reading: /usr/local/share/vcmi/Sprites/PORTRAITSLARGE
Connection has been requested to be closed.
Sent closing signal to the server

Вторая попытка:
Error in file reading: /usr/local/share/vcmi/Sprites/PORTRAITSLARGE
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 195 requests (195 known processed) with 1 events remaining.
Killing console... [xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
vcmiclient: ../../src/xcb_io.c:273: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.

Третья попытка:
sudo mv /usr/local/share/vcmi/Sprites/PortraitsLarge.json /usr/local/share/vcmi/Sprites/PORTRAITSLARGE #Переименовываю файл

LoadFrame error: Request for frame not present in CAnimation!
    File name: PORTRAITSLARGE Group: 0 Frame: 12
GetImage error: Request for frame not present in CAnimation!
    File name: PORTRAITSLARGE Group: 0 Frame: 12
Warning: Cannot open /usr/local/share/vcmi/Mp3/Win Battle.mp3: Couldn't read from '/usr/local/share/vcmi/Mp3/Win Battle.mp3'
Unable to play music (music parameter was NULL)
GetImage error: Request for frame not present in CAnimation!
    File name: PORTRAITSLARGE Group: 0 Frame: 12
CStupidAI [0xa98b6528]: battleEnd called
Warning: an orphaned child!
battleGetStacks called when there is no battle!
GetImage error: Request for frame not present in CAnimation!
    File name: PORTRAITSLARGE Group: 0 Frame: 12
Warning: Cannot open /usr/local/share/vcmi/Mp3/ROUGH.MP3: Couldn't read from '/usr/local/share/vcmi/Mp3/ROUGH.MP3'

Бой завершился.

(0002628)
Ivan (developer)
2012-06-07 21:31

Где глянуть? Большая часть тут - lib/CLodHandler.*
Затем например картинки загружаются через client/CBitmapHandler.*

Удалять расширения - плохая идея. Они используются чтобы определить тип файла (музыка, картинка, анимация, текст...). В итоге получаем структурку вида { string fileID, int filetype, string realFilename}
Сделано для того, что бы избежать конфликтов. Например в ресурсах игры есть garrison.txt и garrison.pcx, а последний еще можно загрузить как garrison.bmp


Warning: Cannot open /usr/local/share/vcmi/Mp3/ROUGH.MP3: Couldn't read from '/usr/local/share/vcmi/Mp3/ROUGH.MP3'

А вот это уже интересно. У меня этот файл с таким же расширением, таким же регистром и вполне работает (Ubuntu 12.04 x64). Да и "Couldn't read" больше на ошибку чтения чем проблема с путями смахивает.
(0002629)
Risto (reporter)
2012-06-07 22:32
edited on: 2012-06-08 20:16

sudo mv /usr/local/share/vcmi/Sprites/PortraitsLarge.json /usr/local/share/vcmi/Sprites/PORTRAITSLARGE.json # Переименовываю с сохранением расширения.

Error in file reading: /usr/local/share/vcmi/Sprites/PORTRAITSLARGE
zsh: segmentation fault vcmiclient # Фиг вам, всё равно падает.

ls -l /usr/local/share/vcmi/Sprites/PORTRAITSLARGE.json
-rw-rw-r-- 1 risto risto 7246 июля 31 2011 /usr/local/share/vcmi/Sprites/PORTRAITSLARGE.json # Файл доступен для чтения всем. К тому же, под рутом баг повторился.

Так что баг фиксится исключительно таким переименованием: sudo mv /usr/local/share/vcmi/Sprites/PortraitsLarge.json /usr/local/share/vcmi/Sprites/PORTRAITSLARGE # Третья попытка, ага. Тогда всё работает.

ls -l /usr/local/share/vcmi/Mp3/ROUGH.MP3
-rw-r--r-- 1 root root 2159643 июня 7 10:29 /usr/local/share/vcmi/Mp3/ROUGH.MP3 # Существует именно под таким названием, доступен для чтения всем. Под рутом баг повторяется. Аналогичный баг при перезаписи автосейва, в начале хода игрока (см. 0000994).

(0002638)
Ivan (developer)
2012-06-09 10:05

>> /usr/local/share/vcmi/Mp3/ROUGH.MP3 # Существует именно под таким названием, доступен для чтения всем. Под рутом баг повторяется.

Вот поэтому мне кажется что ошибка где-то в системе - файл найден но при открытии или чтении система выдает ошибку.

У меня этот размер этого файла 2,2 МБ (2.159.643 байта) - может немного отличатся
Стоит попробовать открыть его через плеер (Mp3, длительность - 2:14)
(0002639)
Risto (reporter)
2012-06-09 11:39

Блин! С Mp3 действительно сам накосячил: Там пустые файлы. ctorrent их создал, но не загрузил, так как закачка была выборочной. Но со спрайтами и файлами данных картина бага другая.
(0002641)
Ivan (developer)
2012-06-09 17:36

точно? Например portraitsLarge должен выглядеть так: https://vcmi.svn.sourceforge.net/svnroot/vcmi/trunk/Sprites/PortraitsLarge.json [^]
(0002644)
Risto (reporter)
2012-06-09 19:57

Так и выглядит, поскольку взят с svn. Смотри аттачи.
(0002645)
Risto (reporter)
2012-06-09 20:43

После удаления шести с половиной тысяч карт баг пропал (по крайней мере, перестал воспроизводиться в обычных местах). Проблемы с кешированием?
(0002653)
Ivan (developer)
2012-06-11 09:56

Похоже наткнулись на лимит открытых файлов. Должно быть исправлено в ревизии 2746.
Закрываю как дубликат.

Closed as dublicate.

- Issue History
Date Modified Username Field Change
2012-06-07 17:35 Risto New Issue
2012-06-07 17:50 Ivan Note Added: 0002620
2012-06-07 17:53 Risto Note Added: 0002621
2012-06-07 18:02 Risto Note Added: 0002622
2012-06-07 18:36 Risto Note Edited: 0002621 View Revisions
2012-06-07 18:37 Risto Note Edited: 0002621 View Revisions
2012-06-07 18:37 Risto Note Deleted: 0002622
2012-06-07 19:01 Ivan Note Added: 0002623
2012-06-07 19:25 Risto Note Added: 0002624
2012-06-07 19:26 Risto Note Edited: 0002624 View Revisions
2012-06-07 19:43 Risto Note Added: 0002625
2012-06-07 20:19 Risto Note Deleted: 0002625
2012-06-07 20:29 Risto Note Added: 0002626
2012-06-07 20:31 Risto Note Edited: 0002626 View Revisions
2012-06-07 21:31 Ivan Note Added: 0002628
2012-06-07 22:32 Risto Note Added: 0002629
2012-06-07 22:55 Risto Note Edited: 0002629 View Revisions
2012-06-08 20:16 Risto Note Edited: 0002629 View Revisions
2012-06-09 10:05 Ivan Note Added: 0002638
2012-06-09 11:39 Risto Note Added: 0002639
2012-06-09 17:36 Ivan Note Added: 0002641
2012-06-09 17:43 Risto File Added: PortraitsLarge.json
2012-06-09 17:43 Risto File Added: PortraitsSmall.json
2012-06-09 19:57 Risto Note Added: 0002644
2012-06-09 20:43 Risto Note Added: 0002645
2012-06-11 09:56 Ivan Relationship added duplicate of 0000994
2012-06-11 09:56 Ivan Note Added: 0002653
2012-06-11 09:56 Ivan Status new => closed
2012-06-11 09:56 Ivan Assigned To => Ivan
2012-06-11 09:56 Ivan Resolution open => duplicate

Site | Forums | Wiki | Slack | GitHub


Copyright © 2000 - 2024 MantisBT Team
Hosting provided by DigitalOcean