Проблеми з доступом до спільних файлів у VirtualBox

Опишу проблему, що вбила пів дня мого робочого часу. Мій робочий Centos на віртуальній машині (VirtualBox) з Apache в якості веб-серверу раптово перестав віддавати мені статичні дані, котрі лежали в спільній папці Windows-Centos. Дослідження і вирішення всередині статті.

І так, ще раз більш детально про схему: основну розробку веду з Windows 7 + маю поставленого Centos на VirtualBox. Посередником між ними є спільна папка, котра автоматично монтується при старті віртуальної машини. В цій папці власне лежать всі проекти. Весь веб-сервер знаходиться на віртуалці і натравлюється на цю спільну папку. Таким чином я все редагую у Windows, але запускаю у Centos, котрий наближений до production-середовища. Досить поширений спосіб розробки, так.

Тепер проблема: в один момент всі статичні файли я почав оримувати з помилками, а потім взагалі перестав отримувати (прямий телнет з самої віртуальної машини показував пусті дані, скріншот нижче). Тобто інформацію про файл веб-сервер зчитував правильно, але чам файл віддавав явно криво.



Почались пошуки проблеми. Сама віртуалка плювалась наступними помилками, котрі вказували, що джерело проблем в guest additions.



Оскільки проблема вимальовувалась в зоні спільної папки між віндою і віртуалкою, то правильний гуглівський запит привів мене в древній баг файлової системи virtualbox'у, котрий розповів мені, що це "missing implementation of the Linux sendfile system call in our VFS module". Не розумію, як це пов'язано з шарінгом папок, але ця порада повністю виправила ситуацію, змусивши вебсервера не покладатись на операційну систему, а самому читати файл й посилати його у відповідь на запит.

Для тих, хто не хто не ходить по лінках - я просто поставив EnableSendfile Off у головному конфігу Apache і це магічним чином вирішило всі проблеми.

Отаке.

коментарі:

kochubey.al 21.06.2013 08:27
А почему Вы не хотите поставить Ubuntu 12.04 c КДЕ, и реально поставить XP-шку в качестве гостевой системы? Очень удобно, я реально на компьютере с 2-мя гигабайтами памяти пользуюсь и Eclipse, и Хромом в качестве дебаггера Javascript. Очень интересно)
Мирослав 30.08.2013 15:32
Ну я би мабуть так і зробив, але на роботі свої, корпоративні, правила.

додати коментар: