Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.08.03;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
2-1379683140
P.Golf
2013-09-20 17:19
2014.08.03
Переход с D7 на D2010


15-1389385804
Юрий
2014-01-11 00:30
2014.08.03
С днем рождения ! 11 января 2014 суббота


3-1299221012
Junior
2011-03-04 09:43
2014.08.03
Поиск текста в строках SQL сервера


15-1389342603
Юрий
2014-01-10 12:30
2014.08.03
С днем рождения ! 10 января 2014 пятница


2-1379532154
Павел
2013-09-18 23:22
2014.08.03
TList