Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2014.08.03;
Скачать: [xml.tar.bz2];

Вниз

virtualbox + fmCreate + Read = EPROTO   Найти похожие ветки 

 
Дмитрий СС   (2014-01-08 19:32) [0]

Имеется:
Windows 7.
Debian на virtualbox-е.
Подключена общая папка.
В этой папке лежит програмка написанная на freepascal.
В определенной части кода она создает временный файл Tmp := TFileStream.Create("...", fmCreate);
Файл заполняется.
После чего делается Tmp.Seek(0, 0) и попытка чтения.
Но Tmp.Read(...) возвращает 0. С помощью strace я установил, что соответствующий вызов read возвращает EPROTO "Protocol error".

strace строка для создания файла:
open("...",O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 5

Если открываемый файл находится на локальном разделе, то читается/пишется он нормально.

Программа выполняется от имени root.

Какие могут быть идеи?


 
Дмитрий СС   (2014-01-08 19:53) [1]

Анализ с помощью Process monitor на хост ОС показал, что virtualbox даже не пытается читать этот файл (только записывает)


 
icelex ©   (2014-01-10 12:55) [2]

разрешения не выставлены?


 
Дмитрий СС   (2014-01-11 10:18) [3]

На виртуальной ос выполняется под рутом.
На хост все права есть. Даже под админом запускается.
Ошибка чтения именно файлов открытых с флагом fmCreate. Если открыть ReadWrite ошибки нет.

Временно сделал через сетевую папку - так работает.

Пс. Виртуалбокс обновил, дебиан тоже. Не помогает.
Всякие багрепорты читал - ничего толкого. Пишут что исправленно: баг закрыт, если проявится откройте снова. И все хрен знает каких времен.


 
sniknik ©   (2014-01-11 11:13) [4]

> strace строка для создания файла:
> open("...",O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 5
моде разве не в 16 ном формате задается обычно? я к тому что в 10м не очень хорошо видно. и попробуй поставить $0777 или (тоже самое) S_IRWXU or S_IRWXG or S_IRWXO


 
Дмитрий СС   (2014-01-12 00:39) [5]


> open("...",O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 5

Это строка из вывода strace. Видимо на языке в котором предшествующий ноль обозначает восьмеричную систему.

Пробовал указывать вручную 777 (во фрипаскале это &777) - эффект тот же самый. К слову сказать, шары виртуалбокса не поддерживают управление правами.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2014.08.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
15-1389092680
Dimka Maslov
2014-01-07 15:04
2014.08.03
А не спеть ли нам пестню...


1-1327406913
@!!ex
2012-01-24 16:08
2014.08.03
DWM не всегда нормально отключается прозрачность у окна


2-1379178090
Вова
2013-09-14 21:01
2014.08.03
Оптимизация кода 2. и еще не могу найти ошибку )


15-1389006579
Sergey Masloff
2014-01-06 15:09
2014.08.03
Фантазия слабеет. Придумать говорящее имя процедуре ;-)


15-1388932280
Разведка
2014-01-05 18:31
2014.08.03
Преобразование даты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский