MantisBT - VCMI |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0000995 | VCMI | Other | public | 2012-06-07 17:35 | 2012-06-11 09:56 |
|
Reporter | Risto | |
Assigned To | Ivan | |
Priority | high | Severity | crash | Reproducibility | sometimes |
Status | closed | Resolution | duplicate | |
Platform | Linux | OS | Lubuntu | OS Version | 12.04 |
Product Version | 0.89 | |
Target Version | | Fixed in Version | | |
|
Summary | 0000995: The names of the sprites and data files in any given case. |
Description | The 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. |
Steps To Reproduce | |
Additional Information | |
Tags | No tags attached. |
Relationships | duplicate of | 0000994 | closed | Tow | Failed to rewrite autosave. |
|
Attached Files | PortraitsLarge.json (7,246) 2012-06-09 17:43 https://bugs.vcmi.eu/file_download.php?file_id=957&type=bug PortraitsSmall.json (7,246) 2012-06-09 17:43 https://bugs.vcmi.eu/file_download.php?file_id=958&type=bug |
|
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 | bug_revision_view_page.php?bugnote_id=2621#r1689 |
2012-06-07 18:37 | Risto | Note Edited: 0002621 | bug_revision_view_page.php?bugnote_id=2621#r1690 |
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 | bug_revision_view_page.php?bugnote_id=2624#r1692 |
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 | bug_revision_view_page.php?bugnote_id=2626#r1694 |
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 | bug_revision_view_page.php?bugnote_id=2629#r1696 |
2012-06-08 20:16 | Risto | Note Edited: 0002629 | bug_revision_view_page.php?bugnote_id=2629#r1705 |
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 |
Notes |
|
(0002620)
|
Ivan
|
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
|
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
|
2012-06-07 19:01
|
|
С mp3 это вполне возможно. Там файлы должны быть в определенном регистре.
Со всем, что в папках Data и Sprites проблем быть не должно. При запуске клиент запоминает имена всех файлов в папке и их реестр/расширение.
"Error in file reading" может возникнуть:
1) после запуска клиента этот файл переименовали или переместили
2) файл недоступен для чтения (стоит проверить права доступа)
Если файл не найден, то ошибка выдается другая ("Failed to find file"). Тут файл при запуске нашелся, но прочитать из него ничего не вышло. |
|
|
(0002624)
|
Risto
|
2012-06-07 19:25
(edited on: 2012-06-07 19:26) |
|
Проблема в том, что после переименования файла, связанный с ним баг исчезает. Проверено на PortraitsSmall.json и PortraitsLarge.json (имена файлов переведены в верхний регистр, расширение отброшено). Если мне скажут, где в сырцах искать кусок, отвечающий за запоминание -- могу посмотреть, возможно пойму, от чего глюк.
Справедливости ради стоит отметить, что первая ошибка (которая XIO: fatal IO error) всплывает и в официальной Linux-версии Героев, от Lokigames (только имя файла другое).
|
|
|
(0002626)
|
Risto
|
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
|
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
|
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
|
2012-06-09 10:05
|
|
>> /usr/local/share/vcmi/Mp3/ROUGH.MP3 # Существует именно под таким названием, доступен для чтения всем. Под рутом баг повторяется.
Вот поэтому мне кажется что ошибка где-то в системе - файл найден но при открытии или чтении система выдает ошибку.
У меня этот размер этого файла 2,2 МБ (2.159.643 байта) - может немного отличатся
Стоит попробовать открыть его через плеер (Mp3, длительность - 2:14) |
|
|
(0002639)
|
Risto
|
2012-06-09 11:39
|
|
Блин! С Mp3 действительно сам накосячил: Там пустые файлы. ctorrent их создал, но не загрузил, так как закачка была выборочной. Но со спрайтами и файлами данных картина бага другая. |
|
|
(0002641)
|
Ivan
|
2012-06-09 17:36
|
|
|
|
(0002644)
|
Risto
|
2012-06-09 19:57
|
|
Так и выглядит, поскольку взят с svn. Смотри аттачи. |
|
|
(0002645)
|
Risto
|
2012-06-09 20:43
|
|
После удаления шести с половиной тысяч карт баг пропал (по крайней мере, перестал воспроизводиться в обычных местах). Проблемы с кешированием? |
|
|
(0002653)
|
Ivan
|
2012-06-11 09:56
|
|
Похоже наткнулись на лимит открытых файлов. Должно быть исправлено в ревизии 2746.
Закрываю как дубликат.
Closed as dublicate. |
|