На сервере: samba-3.0.32_2,1: FreeBSD filesrv.intty.pvt 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 14:37:25 UTC 2009 На клиенте: CentOS 5.2, ядро 2.6.18 из обновлений к системе etercifs 4.3.6, WINE@Etersoft 1.0.10 1С 8.1.13.* клиент-серверная Проблемы при сохранении файлов из 1С 8.1. При попытке пользователя сохранить документ (из 1С) на samba-ресурс файл создаётся с правами root:root 644, при том, что монтируется ресурс с параметрами file_mask=0666,dir_mask=0777. При добавлении параметра монтирования setuids 1С сообщает об ошибке сохранения (хотя файл создаётся, но при этом его размер равен 16Kb ровно, внутри - 0x00). Возможн это проблема с OLE? Один из случае: при сохранении файла из 1С 8.1 файл создался с правами 666 root:root, однако, размером ровно 1536 байт (должен был быть файл MS Excel), состоящий полностью из 0x00. В логах wine следующее: ... fixme:storage:StgCreateDocfile Storage share mode not implemented. fixme:storage:StgCreateDocfile Transacted mode not implemented. err:virtual:map_file_into_view shared writable mmap not supported, broken filesystem? err:virtual:NtMapViewOfSection map_file_into_view 0xd5f0000 1000 000000000 failed err:storage:ImplBIGBLOCKFILE_WriteAt Unable to get a page to write. This should never happen err:virtual:map_file_into_view shared writable mmap not supported, broken filesystem? err:virtual:NtMapViewOfSection map_file_into_view 0xd5f0000 1000 000000000 failed err:storage:ImplBIGBLOCKFILE_WriteAt Unable to get a page to write. This should never happen err:virtual:map_file_into_view shared writable mmap not supported, broken filesystem? err:virtual:NtMapViewOfSection map_file_into_view 0xd5f0000 1000 000000000 failed Копирование файлов средствами OS вроде как проходит нормально.
У меня пока гипотезы 3: 1. Ошибка в работе 1С 8.1 (некорректно сохраняет именно в таком раскладе) - странно то, что локально с сохранением проблем нет. В логах не очень хорошие сообщения на тему сохранения. 2. Нечто в используемой samba, влияющее на etercifs 3. Особые параметры монтирования на клиенте
Установил samba3: # pkg_fetch samba3 ---> Fetching samba3 /var/tmp/portupgraded02Wz9IN/samba3.tbz 100% of 26 MB 326 kBps 00m00s ---> Downloaded as samba3.tbz ---> Identifying the package /var/tmp/portupgraded02Wz9IN/samba3.tbz ---> Saved as /usr/ports/packages/All/samba-3.0.35,1.tbz [root@freebsd /mnt/FreeBSD/7.2/usr/ports/net/samba3]# pkg_add -f /usr/ports/packages/All/samba-3.0.35,1.tbz Но надо обновить все пакеты, я пока не знаю как.
Денис, предлагаю проверять в порядке согласно моему комментарию №1.
порты обновляются утилитой portupgrade. portupgrade -aP обновляет все порты, устанавливая бинарники, где возможно.
сейчас /usr/ports хоста указывает на /mnt/FreeBSD/7.2/usr/ports с обновленными портами.
FreeBSD отменяется. Воспроизвести удалось в обычных условиях. Открываем любой документ, Файл>Сохранить копию> Выбираем расширение .xls В консоль валится следующее: fixme:storage:StgCreateDocfile Storage share mode not implemented. fixme:storage:StgCreateDocfile Transacted mode not implemented. err:virtual:map_file_into_view shared writable mmap not supported, broken filesystem? err:virtual:NtMapViewOfSection map_file_into_view 0x10330000 1000 000000000 failed err:storage:ImplBIGBLOCKFILE_WriteAt Unable to get a page to write. This should never happen err:virtual:map_file_into_view shared writable mmap not supported, broken filesystem? err:virtual:NtMapViewOfSection map_file_into_view 0x10330000 1000 000000000 failed err:storage:ImplBIGBLOCKFILE_WriteAt Unable to get a page to write. This should never happen err:virtual:map_file_into_view shared writable mmap not supported, broken filesystem? err:virtual:NtMapViewOfSection map_file_into_view 0x10330000 1000 000000000 failed
WINE@Etersoft 1.0.11 eter5.1/eter3 etercifs 4.3.8
Самый легкий способ воспроизведения: Файл>Новый>Табличный документ, заполняем его, далее Файл>Сохранить копию> Выбираем расширение .xls, выбираем созранение на CIFS-ресурс. Проверено что на NFS-ресурс сохраняется корректно, локально тоже все хорошо. Так же по прошествии некоторого времени файлы начинают корректно сохраняться.
При монтировании с параметрами noperm,forcemand сохранение работает, а с noperm,forcemand,direct не работает (настройки samba и версии ядер и etercifs те же, что в баге 4346). Проблема в том, что без direct есть проблемы с 1С 7.7. Судя по сообщению err:virtual:map_file_into_view shared writable mmap not supported, broken filesystem? дело в mmap. Вот такая тестовая программа: #include <stdio.h> #include <sys/mman.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> int main(int argc, char *argv[]) { void *addr; int fd; if (argc != 2) { fprintf(stderr, "Using: %s filename\n", argv[0]); return 1; } fd = open(argv[1], O_RDWR, 0640); if (fd < 0) { perror("open"); return 1; } addr = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); if (addr != MAP_FAILED) { puts("mmap OK"); munmap(addr, 4096); } else { perror("mmap"); } close(fd); return 0; } при монтировании с noperm,forcemand,direct выводит: mmap: No such device
С noperm,forcemand,direct,brl сохранение тоже не работает.
Я так понимаю, что всё идёт к тому, чтобы режим монтирования CIFS для баз (совместной работы с WINE) и для обычной работы был разный... Надо ли проверять, какая ситуация на 4.4.1 (сборки имеются)?
Это та же проблема, что и в 4370. С параметром direct CIFS просто не знает такой операции, как mmap, потому работа многих приложений, таких как openoffice, gedit не корректна. С 1С 8.1 такая же ситуация. Патч из баги 4370 решает эту проблему.
etercifs 4.4.1 eter1 Проблема решена.
Какая проблема и каким образом решена? Что именно стало работать для тебя?
MOUNT_OPTIONS=user=guest,pass=,rw,iocharset=utf8,noperm,forcemand,direct Сохранение и открытие файлов на CIFS ресурсе работает корректно. etercifs 4.4.1 eter1
Считаём решённым в релизе WINE@E 1.0.12