[PATCH] Re: fruit_rename() prepend ._ again if fruit:ressource=file

Jones Syue jonessyue at qnap.com
Tue Jun 27 07:02:14 UTC 2017


Hello list,

Test master (4.7.0pre1-GIT-bcfa12c) also has this symptom,
refer to attach gdb log,
1st rename() and 2nd rename() are came from fruit_rename(),
which call SMB_VFS_NEXT_RENAME() twice.

Attached patch could address this issue,
this patch checks if the source appledouble basname matched
the destination basename; if they are matched,
would goto done and avoid 2nd rename().
Please help review and any suggestions are appreciated,
thank you.

For example,
a text file called "newfile.txt",
and win8.1 windows explorer renamed it to "._newfile.txt".
In fruit_rename(),
1. The 1st SMB_VFS_NEXT_RENAME() do rename:
   ./newfile.txt -> ./_.newfile.txt
2. Then this patch check and found that the source appbledouble
   basename (._newfile.txt) matched the destination basename
   (._newfile.txt), would goto done.
   Hence the 2nd SMB_VFS_NEXT_RENAME() is not called.

Here is the smb.conf
[global]
fruit:nfs_aces = no
fruit:veto_appledouble = no
vfs objects =  shadow_copy2 catia fruit streams_depot aio_pthread


--
Regards,
Jones Syue | 薛懷宗
QNAP Systems, Inc.

On Thu, Jun 15, 2017 at 6:03 PM, Jones Syue <jonessyue at qnap.com> wrote:

> Hello list,
>
> The win8.1 create a text file "newfile.txt" on the the linux box,
> then rename it to "._newfile.txt" and get an error alert,
> because finally it is renamed to "._._newfile.txt",
> not as win8.1 expected "._newfile.txt".
>
> Through the trace log found that
> 1. 1st rename() is done by vfswrap_rename(): newfile.txt -> ._newfile.txt
> 2. 2nd rename() is done by fruit_rename(): ._newfile.txt -> ._._newfile.txt
>
> Here are 2 workarounds and each one could help this symptom,
> a) remove fruit from vfs objects.
> b) add fruit:ressource = xattr
>
> But i might still need to apply vfs_fruit and save resource fork into file,
> could we ignore fruit_rename() if vfswrap_rename() is done,
> or any suggestion is appreciated,
> thank you.
>
> Client windows 8.1
> Linux box with samba-4.4.14
> vfs objects =  shadow_copy2 catia fruit streams_depot
>
> --
> Regards,
> Jones Syue | 薛懷宗
> QNAP Systems, Inc.
>
-------------- next part --------------
admin at Jones-451 [/share/Public] <0> # gdb --pid 19356 --command=/root/bin/smbd_attach.gdb
GNU gdb (GDB) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Attaching to process 19356
Reading symbols from /share/CACHEDEV1_DATA/Public/20170619_samba4_master_debug_O0/samba/sbin/smbd...done.
Reading symbols from /usr/local/lib/libtrash.so...(no debugging symbols found)...done.
Reading symbols from /lib/libpthread.so.0...Reading symbols from /usr/lib/debug//lib/libpthread-2.21.so...done.
done.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Reading symbols from /usr/local/samba/lib/private/libpopt-samba3-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libsamba-util.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libsmbd-base-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libsamba-debug-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libgenrand-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libtalloc.so.2...done.
Reading symbols from /usr/local/samba/lib/private/libsocket-blocking-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libtevent.so.0...done.
Reading symbols from /usr/local/samba/lib/libtevent-util.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libndr-samba-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libsamba-errors.so.1...done.
Reading symbols from /usr/local/samba/lib/private/libsys-rw-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libsamba3-util-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libsamba-passdb.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libauth-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libsmbconf.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libsamba-cluster-support-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libsamba-sockets-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libcliauth-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libsecrets3-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libndr-standard.so.0...done.
Reading symbols from /usr/local/samba/lib/libsamba-hostconfig.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libsmbd-shim-samba4.so...done.
Reading symbols from /lib/libpopt.so.0...(no debugging symbols found)...done.
Reading symbols from /lib/libc.so.6...Reading symbols from /usr/lib/debug//lib/libc-2.21.so...done.
done.
Reading symbols from /lib/libdl.so.2...Reading symbols from /usr/lib/debug//lib/libdl-2.21.so...done.
done.
Reading symbols from /lib/libm.so.6...Reading symbols from /usr/lib/debug//lib/libm-2.21.so...done.
done.
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug//lib/ld-2.21.so...done.
done.
Reading symbols from /usr/local/samba/lib/private/libutil-cmdline-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libtime-basic-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libreplace-samba4.so...done.
Reading symbols from /lib/librt.so.1...Reading symbols from /usr/lib/debug//lib/librt-2.21.so...done.
done.
Reading symbols from /usr/local/samba/lib/private/libdfs-server-ad-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libprinting-migrate-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libmessages-dgm-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libsamba-security-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libnetapi.so.0...done.
Reading symbols from /usr/local/samba/lib/libsamdb.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libsmbd-conn-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libcommon-auth-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libnpa-tstream-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libCHARSET3-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libtdb.so.1...done.
Reading symbols from /usr/local/samba/lib/private/liblibsmb-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libmsrpc3-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libserver-id-db-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libdbwrap-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libiov-buf-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libutil-tdb-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libkrb5samba-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libdcerpc-samba-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libndr.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libcom_err-samba4.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libcli-spoolss-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libads-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libauthkrb5-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libwbclient.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libutil-setid-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/liblibcli-lsa3-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libgensec-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libcli-smb-common-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libgse-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libdcerpc-binding.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libndr-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libutil-reg-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libevents-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libsamba-modules-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libsmb-transport-samba4.so...done.
Reading symbols from /usr/lib/libldap-2.4.so.2...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libattr.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libacl.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libcups.so.2...(no debugging symbols found)...done.
Reading symbols from /usr/local/samba/lib/private/libasn1util-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libndr-nbt.so.0...done.
Reading symbols from /lib/libz.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/local/samba/lib/private/libsamdb-common-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libsmbldap.so.1...done.
Reading symbols from /usr/local/samba/lib/libsamba-credentials.so.0...done.
Reading symbols from /usr/local/samba/lib/private/libsmbldaphelper-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libldbsamba-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libldb.so.1...done.
Reading symbols from /usr/local/samba/lib/private/libcli-ldap-common-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libtdb-wrap-samba4.so...done.
Reading symbols from /lib/liblber-2.4.so.2...(no debugging symbols found)...done.
Reading symbols from /usr/local/samba/lib/private/liblibcli-netlogon3-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libauth4-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libMESSAGING-samba4.so...done.
Reading symbols from /usr/local/samba/lib/libndr-krb5pac.so.0...done.
Reading symbols from /lib/libcrypt.so.1...Reading symbols from /usr/lib/debug//lib/libcrypt-2.21.so...done.
done.
Reading symbols from /lib/libnsl.so.1...Reading symbols from /usr/lib/debug//lib/libnsl-2.21.so...done.
done.
Reading symbols from /usr/local/samba/lib/private/libmessages-util-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libtalloc-report-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libinterfaces-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libserver-role-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libmsghdr-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libtrusts-util-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libflag-mapping-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libkrb5-samba4.so.26...done.
Reading symbols from /usr/local/samba/lib/private/libgssapi-samba4.so.2...done.
Reading symbols from /usr/local/samba/lib/private/libcli-cldap-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libasn1-samba4.so.8...done.
Reading symbols from /usr/local/samba/lib/private/libaddns-samba4.so...done.
Reading symbols from /usr/lib/libgnutls.so.26...(no debugging symbols found)...done.
Reading symbols from /usr/local/samba/lib/private/libwinbind-client-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libcli-nbt-samba4.so...done.
Reading symbols from //lib/libresolv.so.2...Reading symbols from /usr/lib/debug///lib/libresolv-2.21.so...done.
done.
Reading symbols from //lib/libssl.so.1.0.0...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libcrypto.so.1.0.0...(no debugging symbols found)...done.
Reading symbols from /usr/local/samba/lib/private/libauth-unix-token-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libdcerpc-samba4.so...done.
Reading symbols from /lib/libpam.so.0...(no debugging symbols found)...done.
Reading symbols from /usr/local/samba/lib/private/libMESSAGING-SEND-samba4.so...done.
Reading symbols from /usr/local/samba/lib/private/libheimbase-samba4.so.1...done.
Reading symbols from /usr/local/samba/lib/private/libhx509-samba4.so.5...done.
Reading symbols from /usr/local/samba/lib/private/libhcrypto-samba4.so.5...done.
Reading symbols from /usr/local/samba/lib/private/libroken-samba4.so.19...done.
Reading symbols from /usr/local/samba/lib/private/libwind-samba4.so.0...done.
Reading symbols from /usr/lib/libgcrypt.so.11...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libgpg-error.so.0...(no debugging symbols found)...done.
Reading symbols from /usr/local/samba/lib/private/libLIBWBCLIENT-OLD-samba4.so...done.
Reading symbols from /lib/libnss_compat.so.2...Reading symbols from /usr/lib/debug//lib/libnss_compat-2.21.so...done.
done.
Reading symbols from /lib/libnss_nis.so.2...Reading symbols from /usr/lib/debug//lib/libnss_nis-2.21.so...done.
done.
Reading symbols from /lib/libnss_files.so.2...Reading symbols from /usr/lib/debug//lib/libnss_files-2.21.so...done.
done.
Reading symbols from /usr/local/samba/lib/rpc/test_dummy_module.so...done.
Reading symbols from /usr/local/samba/lib/gensec/krb5.so...done.
Reading symbols from /usr/local/samba/lib/vfs/streams_depot.so...done.
Reading symbols from /usr/local/samba/lib/vfs/fruit.so...done.
Reading symbols from /usr/local/samba/lib/vfs/catia.so...done.
Reading symbols from /usr/local/samba/lib/vfs/shadow_copy2.so...done.
0x00007f0e9f2ee8e3 in __epoll_wait_nocancel () at ../sysdeps/unix/syscall-template.S:81
81      T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
Breakpoint 1 at 0x7f0e9f26c120: file ../sysdeps/unix/syscall-template.S, line 81.

Breakpoint 1, rename () at ../sysdeps/unix/syscall-template.S:81
81      T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
(gdb) bt
#0  rename () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f0ea2ade550 in vfswrap_rename (handle=0x5581fc61d420, smb_fname_src=0x5581fc61f0d0, smb_fname_dst=0x5581fc6230b0) at ../source3/modules/vfs_default.c:1127
#2  0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc61d420, smb_fname_src=0x5581fc61f0d0, smb_fname_dst=0x5581fc6230b0) at ../source3/smbd/vfs.c:1840
#3  0x00007f0e914bac7d in streams_depot_rename (handle=0x5581fc614120, smb_fname_src=0x5581fc61f0d0, smb_fname_dst=0x5581fc6230b0) at ../source3/modules/vfs_streams_depot.c:849
#4  0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc614120, smb_fname_src=0x5581fc61f0d0, smb_fname_dst=0x5581fc6230b0) at ../source3/smbd/vfs.c:1840
#5  0x00007f0e912a71fd in fruit_rename (handle=0x5581fc61cbd0, smb_fname_src=0x5581fc61f0d0, smb_fname_dst=0x5581fc6230b0) at ../source3/modules/vfs_fruit.c:3107
#6  0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc61cbd0, smb_fname_src=0x5581fc61f0d0, smb_fname_dst=0x5581fc6230b0) at ../source3/smbd/vfs.c:1840
#7  0x00007f0e910911b0 in catia_rename (handle=0x5581fc6159b0, smb_fname_src=0x5581fc6212c0, smb_fname_dst=0x5581fc62b3e0) at ../source3/modules/vfs_catia.c:718
#8  0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc6159b0, smb_fname_src=0x5581fc6212c0, smb_fname_dst=0x5581fc62b3e0) at ../source3/smbd/vfs.c:1840
#9  0x00007f0e90e7e636 in shadow_copy2_rename (handle=0x5581fc60fe30, smb_fname_src=0x5581fc6212c0, smb_fname_dst=0x5581fc62b3e0) at ../source3/modules/vfs_shadow_copy2.c:1149
#10 0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc60fe30, smb_fname_src=0x5581fc6212c0, smb_fname_dst=0x5581fc62b3e0) at ../source3/smbd/vfs.c:1840
#11 0x00007f0ea2b74465 in rename_internals_fsp (conn=0x5581fc6157e0, fsp=0x5581fc61b450, smb_fname_dst_in=0x5581fc62dc50, attrs=6, replace_if_exists=false) at ../source3/smbd/reply.c:6835
#12 0x00007f0ea2b96d66 in smb2_file_rename_information (conn=0x5581fc6157e0, req=0x5581fc623820, pdata=0x5581fc61b600 "", total_data=52, fsp=0x5581fc61b450, smb_fname_src=0x5581fc6212c0) at ../source3/smbd/trans2.c:6808
#13 0x00007f0ea2b9ae05 in smbd_do_setfilepathinfo (conn=0x5581fc6157e0, req=0x5581fc623820, mem_ctx=0x5581fc6287c0, info_level=65290, fsp=0x5581fc61b450, smb_fname=0x5581fc6212c0, ppdata=0x7ffead4b7490, total_data=52, ret_data_size=0x7ffead4b7480) at ../source3/smbd/trans2.c:8608
#14 0x00007f0ea2c18f7f in smbd_smb2_setinfo_send (mem_ctx=0x5581fc627380, ev=0x5581fc5e9000, smb2req=0x5581fc627380, fsp=0x5581fc61b450, in_info_type=1 '\001', in_file_info_class=10 '\n', in_input_buffer=..., in_additional_information=0) at ../source3/smbd/smb2_setinfo.c:514
#15 0x00007f0ea2c17d5f in smbd_smb2_request_process_setinfo (req=0x5581fc627380) at ../source3/smbd/smb2_setinfo.c:107
#16 0x00007f0ea2bf4283 in smbd_smb2_request_dispatch (req=0x5581fc627380) at ../source3/smbd/smb2_server.c:2680
#17 0x00007f0ea2bf8152 in smbd_smb2_io_handler (xconn=0x5581fc5f6e50, fde_flags=1) at ../source3/smbd/smb2_server.c:3890
#18 0x00007f0ea2bf8258 in smbd_smb2_connection_handler (ev=0x5581fc5e9000, fde=0x5581fc60a620, flags=1, private_data=0x5581fc5f6e50) at ../source3/smbd/smb2_server.c:3928
#19 0x00007f0ea1fc7473 in epoll_event_loop (epoll_ev=0x5581fc5fe150, tvalp=0x7ffead4b7870) at ../lib/tevent/tevent_epoll.c:728
#20 0x00007f0ea1fc7aa9 in epoll_event_loop_once (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent_epoll.c:930
#21 0x00007f0ea1fc47b2 in std_event_loop_once (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent_standard.c:114
#22 0x00007f0ea1fbd5d6 in _tevent_loop_once (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent.c:735
#23 0x00007f0ea1fbd8e6 in tevent_common_loop_wait (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent.c:858
#24 0x00007f0ea1fc4854 in std_event_loop_wait (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent_standard.c:145
#25 0x00007f0ea1fbd989 in _tevent_loop_wait (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent.c:877
#26 0x00007f0ea2bdc810 in smbd_process (ev_ctx=0x5581fc5e9000, msg_ctx=0x5581fc5ea060, sock_fd=36, interactive=false) at ../source3/smbd/process.c:4125
#27 0x00005581fbeff1f2 in smbd_accept_connection (ev=0x5581fc5e9000, fde=0x5581fc607210, flags=1, private_data=0x5581fc607090) at ../source3/smbd/server.c:1019
#28 0x00007f0ea1fc7473 in epoll_event_loop (epoll_ev=0x5581fc5e9ea0, tvalp=0x7ffead4b7c00) at ../lib/tevent/tevent_epoll.c:728
#29 0x00007f0ea1fc7aa9 in epoll_event_loop_once (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent_epoll.c:930
#30 0x00007f0ea1fc47b2 in std_event_loop_once (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent_standard.c:114
#31 0x00007f0ea1fbd5d6 in _tevent_loop_once (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent.c:735
#32 0x00007f0ea1fbd8e6 in tevent_common_loop_wait (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent.c:858
#33 0x00007f0ea1fc4854 in std_event_loop_wait (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent_standard.c:145
#34 0x00007f0ea1fbd989 in _tevent_loop_wait (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent.c:877
#35 0x00005581fbefff64 in smbd_parent_loop (ev_ctx=0x5581fc5e9000, parent=0x5581fc5f6f10) at ../source3/smbd/server.c:1386
#36 0x00005581fbf02147 in main (argc=6, argv=0x7ffead4b81f8) at ../source3/smbd/server.c:2153
(gdb) l
76      #else
77
78      /* This is a "normal" system call stub: if there is an error,
79         it returns -1 and sets errno.  */
80
81      T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
82              ret
83      T_PSEUDO_END (SYSCALL_SYMBOL)
84
85      #endif
(gdb) f 1
#1  0x00007f0ea2ade550 in vfswrap_rename (handle=0x5581fc61d420, smb_fname_src=0x5581fc61f0d0, smb_fname_dst=0x5581fc6230b0) at ../source3/modules/vfs_default.c:1127
1127            result = rename(smb_fname_src->base_name, smb_fname_dst->base_name);
(gdb) p smb_fname_src->base_name
$1 = 0x5581fc61fde0 "newfile.txt"
(gdb) p smb_fname_dst->base_name
$2 = 0x5581fc5e95b0 "._newfile.txt"
(gdb) c
Continuing.

Breakpoint 1, rename () at ../sysdeps/unix/syscall-template.S:81
81      T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
(gdb) bt
#0  rename () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f0ea2ade550 in vfswrap_rename (handle=0x5581fc61d420, smb_fname_src=0x5581fc60f940, smb_fname_dst=0x5581fc622080) at ../source3/modules/vfs_default.c:1127
#2  0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc61d420, smb_fname_src=0x5581fc60f940, smb_fname_dst=0x5581fc622080) at ../source3/smbd/vfs.c:1840
#3  0x00007f0e914bac7d in streams_depot_rename (handle=0x5581fc614120, smb_fname_src=0x5581fc60f940, smb_fname_dst=0x5581fc622080) at ../source3/modules/vfs_streams_depot.c:849
#4  0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc614120, smb_fname_src=0x5581fc60f940, smb_fname_dst=0x5581fc622080) at ../source3/smbd/vfs.c:1840
#5  0x00007f0e912a7353 in fruit_rename (handle=0x5581fc61cbd0, smb_fname_src=0x5581fc61f0d0, smb_fname_dst=0x5581fc6230b0) at ../source3/modules/vfs_fruit.c:3132
#6  0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc61cbd0, smb_fname_src=0x5581fc61f0d0, smb_fname_dst=0x5581fc6230b0) at ../source3/smbd/vfs.c:1840
#7  0x00007f0e910911b0 in catia_rename (handle=0x5581fc6159b0, smb_fname_src=0x5581fc6212c0, smb_fname_dst=0x5581fc62b3e0) at ../source3/modules/vfs_catia.c:718
#8  0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc6159b0, smb_fname_src=0x5581fc6212c0, smb_fname_dst=0x5581fc62b3e0) at ../source3/smbd/vfs.c:1840
#9  0x00007f0e90e7e636 in shadow_copy2_rename (handle=0x5581fc60fe30, smb_fname_src=0x5581fc6212c0, smb_fname_dst=0x5581fc62b3e0) at ../source3/modules/vfs_shadow_copy2.c:1149
#10 0x00007f0ea2bbfb2c in smb_vfs_call_rename (handle=0x5581fc60fe30, smb_fname_src=0x5581fc6212c0, smb_fname_dst=0x5581fc62b3e0) at ../source3/smbd/vfs.c:1840
#11 0x00007f0ea2b74465 in rename_internals_fsp (conn=0x5581fc6157e0, fsp=0x5581fc61b450, smb_fname_dst_in=0x5581fc62dc50, attrs=6, replace_if_exists=false) at ../source3/smbd/reply.c:6835
#12 0x00007f0ea2b96d66 in smb2_file_rename_information (conn=0x5581fc6157e0, req=0x5581fc623820, pdata=0x5581fc61b600 "", total_data=52, fsp=0x5581fc61b450, smb_fname_src=0x5581fc6212c0) at ../source3/smbd/trans2.c:6808
#13 0x00007f0ea2b9ae05 in smbd_do_setfilepathinfo (conn=0x5581fc6157e0, req=0x5581fc623820, mem_ctx=0x5581fc6287c0, info_level=65290, fsp=0x5581fc61b450, smb_fname=0x5581fc6212c0, ppdata=0x7ffead4b7490, total_data=52, ret_data_size=0x7ffead4b7480) at ../source3/smbd/trans2.c:8608
#14 0x00007f0ea2c18f7f in smbd_smb2_setinfo_send (mem_ctx=0x5581fc627380, ev=0x5581fc5e9000, smb2req=0x5581fc627380, fsp=0x5581fc61b450, in_info_type=1 '\001', in_file_info_class=10 '\n', in_input_buffer=..., in_additional_information=0) at ../source3/smbd/smb2_setinfo.c:514
#15 0x00007f0ea2c17d5f in smbd_smb2_request_process_setinfo (req=0x5581fc627380) at ../source3/smbd/smb2_setinfo.c:107
#16 0x00007f0ea2bf4283 in smbd_smb2_request_dispatch (req=0x5581fc627380) at ../source3/smbd/smb2_server.c:2680
#17 0x00007f0ea2bf8152 in smbd_smb2_io_handler (xconn=0x5581fc5f6e50, fde_flags=1) at ../source3/smbd/smb2_server.c:3890
#18 0x00007f0ea2bf8258 in smbd_smb2_connection_handler (ev=0x5581fc5e9000, fde=0x5581fc60a620, flags=1, private_data=0x5581fc5f6e50) at ../source3/smbd/smb2_server.c:3928
#19 0x00007f0ea1fc7473 in epoll_event_loop (epoll_ev=0x5581fc5fe150, tvalp=0x7ffead4b7870) at ../lib/tevent/tevent_epoll.c:728
#20 0x00007f0ea1fc7aa9 in epoll_event_loop_once (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent_epoll.c:930
#21 0x00007f0ea1fc47b2 in std_event_loop_once (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent_standard.c:114
#22 0x00007f0ea1fbd5d6 in _tevent_loop_once (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent.c:735
#23 0x00007f0ea1fbd8e6 in tevent_common_loop_wait (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent.c:858
#24 0x00007f0ea1fc4854 in std_event_loop_wait (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent_standard.c:145
#25 0x00007f0ea1fbd989 in _tevent_loop_wait (ev=0x5581fc5e9000, location=0x7f0ea2d401a8 "../source3/smbd/process.c:4125") at ../lib/tevent/tevent.c:877
#26 0x00007f0ea2bdc810 in smbd_process (ev_ctx=0x5581fc5e9000, msg_ctx=0x5581fc5ea060, sock_fd=36, interactive=false) at ../source3/smbd/process.c:4125
#27 0x00005581fbeff1f2 in smbd_accept_connection (ev=0x5581fc5e9000, fde=0x5581fc607210, flags=1, private_data=0x5581fc607090) at ../source3/smbd/server.c:1019
#28 0x00007f0ea1fc7473 in epoll_event_loop (epoll_ev=0x5581fc5e9ea0, tvalp=0x7ffead4b7c00) at ../lib/tevent/tevent_epoll.c:728
#29 0x00007f0ea1fc7aa9 in epoll_event_loop_once (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent_epoll.c:930
#30 0x00007f0ea1fc47b2 in std_event_loop_once (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent_standard.c:114
#31 0x00007f0ea1fbd5d6 in _tevent_loop_once (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent.c:735
#32 0x00007f0ea1fbd8e6 in tevent_common_loop_wait (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent.c:858
#33 0x00007f0ea1fc4854 in std_event_loop_wait (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent_standard.c:145
#34 0x00007f0ea1fbd989 in _tevent_loop_wait (ev=0x5581fc5e9000, location=0x5581fbf05aac "../source3/smbd/server.c:1386") at ../lib/tevent/tevent.c:877
#35 0x00005581fbefff64 in smbd_parent_loop (ev_ctx=0x5581fc5e9000, parent=0x5581fc5f6f10) at ../source3/smbd/server.c:1386
#36 0x00005581fbf02147 in main (argc=6, argv=0x7ffead4b81f8) at ../source3/smbd/server.c:2153
(gdb) f 1
#1  0x00007f0ea2ade550 in vfswrap_rename (handle=0x5581fc61d420, smb_fname_src=0x5581fc60f940, smb_fname_dst=0x5581fc622080) at ../source3/modules/vfs_default.c:1127
1127            result = rename(smb_fname_src->base_name, smb_fname_dst->base_name);
(gdb) p smb_fname_src->base_name
$3 = 0x5581fc60fad0 "./._newfile.txt"
(gdb) p smb_fname_dst->base_name
$4 = 0x5581fc622370 "./._._newfile.txt"
(gdb) shell ls -al /share/Web/
total 16
drwxrwxrwx    3 admin    administ      4096 Jun 19 15:05 .
drwxrwxrwx   24 admin    administ      4096 Jun 18 03:00 ..
-rw-rw-rw-    1 admin    administ         0 Jun 19 15:04 ._newfile.txt
drwxrwxrwx    2 admin    administ      4096 Jun 14 17:30 @Recycle
-rw-r--r--    1 admin    administ      1601 Jun 14 17:31 index.php
(gdb) c
Continuing.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-vfs_fruit-fix-fruit_rename-if-fruit-ressource-file.patch
Type: application/octet-stream
Size: 2782 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20170627/fec79573/0001-vfs_fruit-fix-fruit_rename-if-fruit-ressource-file.obj>


More information about the samba-technical mailing list