The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Самба убивает файлы"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Samba, выделена в отдельный форум / Linux)
Изначальное сообщение [ Отслеживать ]

"Самба убивает файлы"  +/
Сообщение от pavlinux (ok), 04-Май-21, 02:09 
Если отправляю со смарта видео файлы *.MP4, *.MOV,*.HEIC, то
после завершения передачи они удаляются. Когда передаю фотки, то всё нормально.

Вот лог при передаче видео.


...
...
smb2: fnum 2771293725, file camvideo_408844ac.MP4, length=65536 offset=0 wrote=65536
smb2: fnum 2771293725, file camvideo_408844ac.MP4, length=65536 offset=0 wrote=65536
smb2: fnum 2771293725, file camvideo_408844ac.MP4, length=65536 offset=0 wrote=65536
smb2: fnum 2771293725, file camvideo_408844ac.MP4, length=65536 offset=0 wrote=65536
smb2: fnum 2771293725, file camvideo_408844ac.MP4, length=46489 offset=0 wrote=46489
root closed file camvideo_408844ac.MP4 (numopen=0) NT_STATUS_OK
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[camvideo_408844ac.MP4] found camvideo_408844ac.MP4 fname=camvideo_408844ac.MP4 (camvideo_408844ac.MP4)
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[camvideo_408844ac.MP4] found camvideo_408844ac.MP4 fname=camvideo_408844ac.MP4 (camvideo_408844ac.MP4)
root opened file camvideo_408844ac.MP4 read=No write=No (numopen=1)
root closed file camvideo_408844ac.MP4 (numopen=0) NT_STATUS_OK
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[camvideo_408844ac.MP4] found camvideo_408844ac.MP4 fname=camvideo_408844ac.MP4 (camvideo_408844ac.MP4)
smbd_do_qfsinfo: level = 1003
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[camvideo_408844ac.MP4] found camvideo_408844ac.MP4 fname=camvideo_408844ac.MP4 (camvideo_408844ac.MP4)
root opened file camvideo_408844ac.MP4 read=Yes write=No (numopen=1)
root opened file camvideo_408844ac.MP4 read=No write=No (numopen=2)
root closed file camvideo_408844ac.MP4 (numopen=1) NT_STATUS_OK
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../source3/smbd/smb2_create.c:296
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_FILE_CLOSED] || at ../source3/smbd/smb2_server.c:2599
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_FILE_CLOSED] || at ../source3/smbd/smb2_server.c:2599
creating new dirptr 0 for path ., expect_close = 0
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_NO_SUCH_FILE] || at ../source3/smbd/smb2_query_directory.c:158
root opened file camvideo_408844ac.MP4 read=No write=No (numopen=2)
smbd_do_setfilepathinfo: camvideo_408844ac.MP4 (fnum 3692989460) info_level=65290 totdata=60
rename_internals_fsp: succeeded doing rename on camvideo_408844ac.MP4 -> .nfs.20051031.00f7
root closed file .nfs.20051031.00f7 (numopen=1) NT_STATUS_OK
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[.nfs.20051031.00f7] found .nfs.20051031.00f7 fname=.nfs.20051031.00f7 (.nfs.20051031.00f7)
root closed file .nfs.20051031.00f7 (numopen=0) NT_STATUS_OK
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[.nfs.20051031.00f7] found .nfs.20051031.00f7 fname=.nfs.20051031.00f7 (.nfs.20051031.00f7)
root opened file .nfs.20051031.00f7 read=No write=No (numopen=1)
smbd_do_setfilepathinfo: .nfs.20051031.00f7 (fnum 2787744222) info_level=1013 totdata=1
root closed file .nfs.20051031.00f7 (numopen=0) NT_STATUS_OK


Фотка


smb2: fnum 3022153035, file IMG_4583.jpg, length=65536 offset=0 wrote=65536
smb2: fnum 3022153035, file IMG_4583.jpg, length=26433 offset=0 wrote=26433
smb2: fnum 3022153035, file IMG_4583.jpg, length=65536 offset=0 wrote=65536
root closed file IMG_4583.jpg (numopen=0) NT_STATUS_OK
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
smbd_do_qfsinfo: level = 1003
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
root opened file IMG_4583.jpg read=Yes write=No (numopen=1)
root opened file IMG_4583.jpg read=No write=No (numopen=2)
root closed file IMG_4583.jpg (numopen=1) NT_STATUS_OK
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
root opened file IMG_4583.jpg read=No write=Yes (numopen=2)
smbd_do_setfilepathinfo: IMG_4583.jpg (fnum 2414260208) info_level=1004 totdata=40
root closed file IMG_4583.jpg (numopen=1) NT_STATUS_OK
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
root opened file IMG_4583.jpg read=Yes write=Yes (numopen=2)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../source3/smbd/smb2_create.c:296
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_FILE_CLOSED] || at ../source3/smbd/smb2_server.c:2599
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_FILE_CLOSED] || at ../source3/smbd/smb2_server.c:2599
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../source3/smbd/smb2_create.c:296
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_FILE_CLOSED] || at ../source3/smbd/smb2_server.c:2599
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_FILE_CLOSED] || at ../source3/smbd/smb2_server.c:2599
root closed file IMG_4583.jpg (numopen=1) NT_STATUS_OK
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)
root opened file IMG_4583.jpg read=Yes write=Yes (numopen=2)
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[1] status[NT_STATUS_OBJECT_NAME_NOT_FOUND] || at ../source3/smbd/smb2_create.c:296
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[5] status[NT_STATUS_FILE_CLOSED] || at ../source3/smbd/smb2_server.c:2599
smbd_smb2_request_error_ex: smbd_smb2_request_error_ex: idx[9] status[NT_STATUS_FILE_CLOSED] || at ../source3/smbd/smb2_server.c:2599
root closed file IMG_4583.jpg (numopen=1) NT_STATUS_OK
root closed file IMG_4583.jpg (numopen=0) NT_STATUS_OK
creating new dirptr 0 for path ., expect_close = 0
smbd_dirptr_get_entry mask=[IMG_4583.jpg] found IMG_4583.jpg fname=IMG_4583.jpg (IMG_4583.jpg)

Видосы пытается переименовать в какие-то файлы типа .nfs.20051031.00f7


Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от ыы (?), 04-Май-21, 12:47   +/
> Если отправляю со смарта видео файлы *.MP4, *.MOV,*.HEIC, то
> после завершения передачи они удаляются. Когда передаю фотки, то всё нормально.

а самба то тут при чем?
какой-то сервис  у вас там на приемном конце чтото делает...  отключите его.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #3

2. Сообщение от pavlinux (ok), 04-Май-21, 14:19   +/
>> Если отправляю со смарта видео файлы *.MP4, *.MOV,*.HEIC, то
>> после завершения передачи они удаляются. Когда передаю фотки, то всё нормально.
> а самба то тут при чем?
> какой-то сервис  у вас там на приемном конце чтото делает...  
> отключите его.

Самба - это приёмный сервис. Сетевая часть вообще не причём.
Файлы прилетают, большие файлы вижу в папке во время передачи.

При приёме видеофалй, после:

root opened file camvideo_408844ac.MP4 read=No write=No (numopen=2)

запускается

smbd_do_setfilepathinfo: camvideo_408844ac.MP4 (fnum 3692989460) info_level=65290 totdata=60
rename_internals_fsp: succeeded doing rename on camvideo_408844ac.MP4 -> .nfs.20051031.00f7

с фоткой


root opened file IMG_4583.jpg read=Yes write=Yes (numopen=2)
...
root closed file IMG_4583.jpg (numopen=1) NT_STATUS_OK
root closed file IMG_4583.jpg (numopen=0) NT_STATUS_OK

Как не сложно заметить, при open() (до переименования) видео и фотки флаги разные

видео: read=No write=No (numopen=2)
...
фотка: read=Yes write=Yes (numopen=2)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

3. Сообщение от pavlinux (ok), 04-Май-21, 15:44   +/
>> Если отправляю со смарта видео файлы *.MP4, *.MOV,*.HEIC, то
>> после завершения передачи они удаляются. Когда передаю фотки, то всё нормально.
> а самба то тут при чем?
> какой-то сервис  у вас там на приемном конце чтото делает...  
> отключите его.

Убивается файл тут... https://git.samba.org/?p=samba.git;a=blob;f=source3/smbd/clo...

Вопрос в том, какого уя это срабатывает на разных файлах, более только, из одного СЕТЕВОГО источника. ))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #4

4. Сообщение от ACCA (ok), 05-Май-21, 04:30   +/
Ну а чё, смарт открыл файл на запись с флагом FILE_DELETE_ON_CLOSE.
Вполне может быть какой-нибудь дебильный Digital Rights Management.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #6

5. Сообщение от eRIC (ok), 05-Май-21, 13:07   +/
версия самбы, окружение какое, сам конфиг?
в одну и ту шару/папку идет запись или в разные?

share mode ? https://github.com/samba-team/samba/blob/47d79d7e7e406f7dd20...

root opened file camvideo_408844ac.MP4 read=Yes write=No (numopen=1)
root opened file camvideo_408844ac.MP4 read=No write=No (numopen=2)
root closed file camvideo_408844ac.MP4 (numopen=1) NT_STATUS_OK

root opened file IMG_4583.jpg read=Yes write=No (numopen=1)
root opened file IMG_4583.jpg read=No write=No (numopen=2)
root closed file IMG_4583.jpg (numopen=1) NT_STATUS_OK

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #8

6. Сообщение от pavlinux (ok), 06-Май-21, 23:45   +/
> Ну а чё, смарт открыл файл на запись с флагом FILE_DELETE_ON_CLOSE.
> Вполне может быть какой-нибудь дебильный Digital Rights Management.

Не, проверил, DELETE_ON_CLOSE ставится на временные файлы .nfs.20051031.00f7
Заменил ту стороку в коде, на delete_file = false; файлы .nfs.*  остаются в папке, все норм.  

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

7. Сообщение от pavlinux (ok), 07-Май-21, 00:02   +/
> версия самбы, окружение какое, сам конфиг?
> в одну и ту шару/папку идет запись или в разные?

Samba из Debian 10, 4.9.5+dfsg-5+deb10u1

Конфиг уже весь переколбасли ... вот последняя версия https://pastebin.pl/view/646c0d8f

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

8. Сообщение от pavlinux (ok), 07-Май-21, 00:19   +/
> версия самбы, окружение какое, сам конфиг?
> в одну и ту шару/папку идет запись или в разные?
> share mode ? https://github.com/samba-team/samba/blob/47d79d7e7e406f7dd20...
> root opened file camvideo_408844ac.MP4 read=Yes write=No (numopen=1)
> root opened file camvideo_408844ac.MP4 read=No write=No (numopen=2)
> root closed file camvideo_408844ac.MP4 (numopen=1) NT_STATUS_OK
> root opened file IMG_4583.jpg read=Yes write=No (numopen=1)
> root opened file IMG_4583.jpg read=No write=No (numopen=2)
> root closed file IMG_4583.jpg (numopen=1) NT_STATUS_OK

Кстати, сделал уровень логирования поболее... Вон чо вылезло


unix_convert called on file "camphoto_1903590565.JPG:com.apple.assetsd.UUID"
unix_convert begin: name = camphoto_1903590565.JPG, dirpath = , start = camphoto_1903590565.JPG
stat_cache_add: Added entry (5a2fb5783390:size 17) camphoto_1903590565.JPG -> camphoto_1903590565.JPG
conversion of base_name finished camphoto_1903590565.JPG:com.apple.assetsd.UUID -> camphoto_1903590565.JPG

Реальное прилетаемое имя с суфиксами :com.apple.assetsd.UUID

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

9. Сообщение от pavlinux (ok), 07-Май-21, 03:46   +1 +/
Ребяты, это пи...ц какой-то...  Можно и FAQ написать, но влом.

В общем iPhone (наверно и другие яблоки) "гадят" всем! :)
Коротко тут:
https://eclecticlight.co/2018/01/29/icloud-drive-has-user-mo.../
https://eclecticlight.co/2018/01/29/xattr-com-apple-cscachef.../


Как я понял, Самба обрезала атрибут com.apple.cscachefs, делала временный файл,
а Яблоко проверяло наличие ещё до закрытия передачи (данные уже передались),
и разрывало связь. Самба естественно думала, что это реальная ошибка, считала, что файл
не до конца передан и вполне законно его удаляла. На самом деле там атрибутов ещё много:


com.apple.assetsd.UUID
com.apple.assetsd.addedDate
com.apple.assetsd.assetType
com.apple.assetsd.avalanche.type
com.apple.assetsd.creatorBundleID
com.apple.assetsd.customCreationDate
com.apple.assetsd.dbRebuildUuid
com.apple.assetsd.deferredProcessing
com.apple.assetsd.favorite
com.apple.assetsd.grouping.state
com.apple.assetsd.hidden
com.apple.assetsd.importedBy
com.apple.assetsd.importedByDisplayName
com.apple.assetsd.originalFilename
com.apple.assetsd.publicGlobalUUID
com.apple.assetsd.timeZoneName
com.apple.assetsd.timeZoneOffset
com.apple.assetsd.trashed
com.apple.assetsd.videoComplementVisibility
com.apple.lastuseddate#PS

  
Чтоб всё это обойти нужно:

0. Файловую систему с поддержкой XATTR (на tmpfs работает, но как-то туго)  

1. Включить поддержку ACL, XATTR, EA


force unknown acl user = true
ea support = yes

2. Отключить "Гибкие блокировки"


oplocks = no

3. Включить модули acl_xattr и streams_xattr https://www.samba.org/samba/docs/current/man-html/vfs_stream...


vfs objects = acl_xattr
acl_xattr:ignore system acls = yes

vfs objects = streams_xattr
# streams_xattr:store_stream_type = no

  

--
После передачи атрибуты файлы выглядят так:


# getfattr -d camvideo_408844ac.MP4
# file: camvideo_408844ac.MP4
user.DOSATTRIB=0sMHgyMAAAAwADAAAAEQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB8SDkdQNcBAAAAAAAAAAA=
user.DosStream.com.apple.assetsd.UUID:$DATA=0gT/rnfcqY4ip6ONPg6OF+DwA=
user.DosStream.com.apple.assetsd.addedDate:$DATA=0sXnBsaXN0RDAeQcPgFofais4IAAAAAAAAAQEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEA
user.DosStream.com.apple.assetsd.assetType:$DATA=0sAwAA
user.DosStream.com.apple.assetsd.avalanche.type:$DATA=0sAAAA
user.DosStream.com.apple.assetsd.creatorBundleID:$DATA="ph.telegra.Telegraph"
user.DosStream.com.apple.assetsd.customCreationDate:$DATA=0sYnBsaXN0MDAzQcFgFn6AAAAIAAAAAAAAAQEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEA
user.DosStream.com.apple.assetsd.dbRebuildUuid:$DATA="a2aD7A11-965F-4E2E-B428-F020FA8A4CD8"
user.DosStream.com.apple.assetsd.deferredProcessing:$DATA=0sAAAA
user.DosStream.com.apple.assetsd.favorite:$DATA=0sAAAA
user.DosStream.com.apple.assetsd.grouping.state:$DATA=0sAAAAAAAAAAAA
user.DosStream.com.apple.assetsd.hidden:$DATA=0sAAAA
user.DosStream.com.apple.assetsd.importedBy:$DATA=0sAwAA
user.DosStream.com.apple.assetsd.importedByDisplayName:$DATA="Telegram"
user.DosStream.com.apple.assetsd.originalFilename:$DATA="camvideo_408844ac.mp4"
user.DosStream.com.apple.assetsd.publicGlobalUUID:$DATA="8B23DC6F-A12E-67E4-91D8-84FC187D3141"
user.DosStream.com.apple.assetsd.timeZoneName:$DATA="Europe/Moscow"
user.DosStream.com.apple.assetsd.timeZoneOffset:$DATA=0sMCoAAAA=
user.DosStream.com.apple.assetsd.trashed:$DATA=0sAAAA
user.DosStream.com.apple.assetsd.videoComplementVisibility:$DATA=0sAAAA
user.DosStream.com.apple.lastuseddate#PS:$DATA=0sOomUYAAAAAAAAAAAAAAAAAA=

Вот такое палево летает от айфонов


Как я понял должно помочь и другим яблочникам выкачивать файлы
https://discussions.apple.com/thread/250025119

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10

10. Сообщение от ыы (?), 07-Май-21, 08:57   +/
> Ребяты, это пи...ц какой-то...  Можно и FAQ написать, но влом.
> В общем iPhone (наверно и другие яблоки) "гадят" всем! :)

И с виндовой сетевой шарой?

А вот эта штука тоже не работает?
https://apps.apple.com/ru/app/fe-file-explorer-file-manager/...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #11

11. Сообщение от pavlinux (ok), 07-Май-21, 12:34   +/
>> Ребяты, это пи...ц какой-то...  Можно и FAQ написать, но влом.
>> В общем iPhone (наверно и другие яблоки) "гадят" всем! :)
> И с виндовой сетевой шарой?

А хрен их знает, винда только на виртуалке, виртуалка за НАТом, влом проброс портов и пр. настраивать. Как-нибудь на реальной проверю.

> А вот эта штука тоже не работает?
> https://apps.apple.com/ru/app/fe-file-explorer-file-manager/...

Работает. Для копирования сойдёт. Как я понял, фичи типа "с Dropbox на Самбу" это платно?!  

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру