I'm getting this panic when trying to rename a file with 4.1.6. Seems a bit like #9794. [2014/04/03 14:40:15.203608, 0] ../lib/dbwrap/dbwrap.c:193(dbwrap_check_lock_order) Lock order violation: Trying /var/run/samba/smbXsrv_open_global.tdb at 1 while /var/run/samba/locking.tdb at 1 is locked [2014/04/03 14:40:15.203964, 0] ../lib/dbwrap/dbwrap.c:133(debug_lock_order) lock order: 1:/var/run/samba/locking.tdb 2:<none> 3:<none> [2014/04/03 14:40:15.204424, 0] ../source3/lib/util.c:785(smb_panic_s3) PANIC (pid 26515): invalid lock_order [2014/04/03 14:40:15.207229, 0] ../source3/lib/util.c:896(log_stack_trace) BACKTRACE: 29 stack frames: #0 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(log_stack_trace+0x1a) [0x7f70713ecf3a] #1 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(smb_panic_s3+0x20) [0x7f70713ed010] #2 /usr/lib/x86_64-linux-gnu/libsamba-util.so.0(smb_panic+0x2f) [0x7f7072915c6f] #3 /usr/lib/x86_64-linux-gnu/samba/libdbwrap.so.0(+0x3255) [0x7f706deba255] #4 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smbXsrv_open_create+0x19a) [0x7f707253203a] #5 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(file_new+0x73) [0x7f70724965d3] #6 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(+0xf997d) [0x7f70724e997d] #7 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(create_file_default+0x1ba) [0x7f70724eaa9a] #8 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(+0x1c586b) [0x7f70725b586b] #9 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smb_vfs_call_create_file+0xa5) [0x7f70724f1065] #10 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(open_file_fchmod+0x80) [0x7f70724e8d40] #11 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(file_set_dosmode+0x2f9) [0x7f70724e0439] #12 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(rename_internals_fsp+0xa0f) [0x7f70724c320f] #13 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smbd_do_setfilepathinfo+0x178c) [0x7f70724d8a5c] #14 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smbd_smb2_request_process_setinfo+0x46f) [0x7f707252b41f] #15 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smbd_smb2_request_dispatch+0x8d1) [0x7f7072517c21] #16 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(+0x128c4b) [0x7f7072518c4b] #17 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(+0x1298bc) [0x7f70725198bc] #18 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(run_events_poll+0x16c) [0x7f70714030ac] #19 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(+0x37300) [0x7f7071403300] #20 /usr/lib/x86_64-linux-gnu/libtevent.so.0(_tevent_loop_once+0x8d) [0x7f706fddb5ed] #21 /usr/lib/x86_64-linux-gnu/samba/libsmbd_base.so.0(smbd_process+0x9ca) [0x7f707250558a] #22 smbd(+0x9fa4) [0x7f7072f79fa4] #23 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(run_events_poll+0x16c) [0x7f70714030ac] #24 /usr/lib/x86_64-linux-gnu/libsmbconf.so.0(+0x37300) [0x7f7071403300] #25 /usr/lib/x86_64-linux-gnu/libtevent.so.0(_tevent_loop_once+0x8d) [0x7f706fddb5ed] #26 smbd(main+0x13eb) [0x7f7072f76b8b] #27 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f706fa33ec5] #28 smbd(+0x6f1d) [0x7f7072f76f1d] [2014/04/03 14:40:15.210371, 0] ../source3/lib/dumpcore.c:317(dump_core) dumping core in /var/log/samba/cores/smbd (gdb) bt full #0 0x00007f706fa48f79 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 resultvar = 0 pid = 26043 selftid = 26043 #1 0x00007f706fa4c388 in __GI_abort () at abort.c:89 save_stage = 2 act = {__sigaction_handler = {sa_handler = 0x4, sa_sigaction = 0x4}, sa_mask = {__val = {140120953233040, 140120937383840, 140120939668823, 140119013064705, 0, 0, 140120885923112, 502, 140120937383840, 140120857234768, 140120939697429, 140120935194192, 18446744073709551615, 140120937452352, 140733275380352, 6}}, sa_flags = 81992816, sa_restorer = 0x0} sigs = {__val = {32, 0 <repeats 15 times>}} #2 0x00007f70713fae9b in dump_core () at ../source3/lib/dumpcore.c:336 called = true __FUNCTION__ = "dump_core" #3 0x00007f70713ed077 in smb_panic_s3 (why=<optimised out>) at ../source3/lib/util.c:808 cmd = <optimised out> result = <optimised out> __FUNCTION__ = "smb_panic_s3" #4 0x00007f7072915c6f in smb_panic (why=why@entry=0x7f706debeb1c "invalid lock_order") at ../lib/util/fault.c:159 No locals. #5 0x00007f706deba255 in dbwrap_check_lock_order (mem_ctx=0x7f7073a86c10, db=0x7f7073a1d8a0) at ../lib/dbwrap/dbwrap.c:195 idx = <optimised out> state = 0x0 locked_dbs = {0x7f7073a14700, 0x0, 0x0} #6 dbwrap_fetch_locked_internal (db=db@entry=0x7f7073a1d8a0, mem_ctx=mem_ctx@entry=0x7f7073a49e90, key=..., db_fn=0x7f706debcd50 <db_tdb_fetch_locked>) at ../lib/dbwrap/dbwrap.c:225 rec = <optimised out> frame = 0x7f7073a86c10 #7 0x00007f706deba468 in dbwrap_fetch_locked (db=db@entry=0x7f7073a1d8a0, mem_ctx=mem_ctx@entry=0x7f7073a49e90, key=...) at ../lib/dbwrap/dbwrap.c:245 No locals. #8 0x00007f707253203a in smbXsrv_open_global_allocate (_global=<synthetic pointer>, mem_ctx=0x7f7073a49e90, db=0x7f7073a1d8a0) at ../source3/smbd/smbXsrv_open.c:507 is_free = false was_free = false key_buf = "\210λΊ‘" key = <optimised out> id = 2297150113 i = 0 global = 0x7f7073a92b10 last_free = 0 min_tries = 3 #9 smbXsrv_open_create (conn=0x7f7073a0a0c0, session_info=<optimised out>, now=130410058476535200, _open=_open@entry=0x7fff04e31fc8) at ../source3/smbd/smbXsrv_open.c:811 table = 0x7f7073a22d70 local_rec = 0x0 op = 0x7f7073a49e90 ptr = 0x0 global = 0x0 status = <optimised out> current_sid = 0x7f7073a92cc0 current_token = <optimised out> __FUNCTION__ = "smbXsrv_open_create" #10 0x00007f70724965d3 in file_new (req=req@entry=0x0, conn=conn@entry=0x7f7073a476a0, result=result@entry=0x7fff04e320a8) at ../source3/smbd/files.c:100 op = 0x0 now = <optimised out> sconn = 0x7f7073a1e110 fsp = 0x7f7073a91980 status = <optimised out> __FUNCTION__ = "file_new" #11 0x00007f70724e997d in create_file_unixpath (conn=conn@entry=0x7f7073a476a0, req=req@entry=0x0, smb_fname=smb_fname@entry=0x7f7073a855a0, access_mask=access_mask@entry=2, share_access=share_access@entry=7, create_disposition=create_disposition@entry=1, create_options=create_options@entry=0, file_attributes=file_attributes@entry=0, oplock_request=oplock_request@entry=8, allocation_size=allocation_size@entry=0, private_flags=private_flags@entry=0, sd=sd@entry=0x0, ea_list=ea_list@entry=0x0, result=result@entry=0x7fff04e32170, pinfo=pinfo@entry=0x7fff04e3216c) at ../source3/smbd/open.c:3890 info = 1 fsp = 0x0 status = <optimised out> __FUNCTION__ = "create_file_unixpath" #12 0x00007f70724eaa9a in create_file_default (conn=0x7f7073a476a0, req=0x0, root_dir_fid=<optimised out>, smb_fname=0x7f7073a855a0, access_mask=2, share_access=7, create_disposition=create_disposition@entry=1, create_options=create_options@entry=0, file_attributes=file_attributes@entry=0, oplock_request=oplock_request@entry=8, allocation_size=allocation_size@entry=0, private_flags=private_flags@entry=0, sd=sd@entry=0x0, ea_list=ea_list@entry=0x0, result=result@entry=0x7fff04e32308, pinfo=pinfo@entry=0x0) at ../source3/smbd/open.c:4310 info = 1 status = <optimised out> stream_name = <optimised out> __FUNCTION__ = "create_file_default" #13 0x00007f70725b586b in vfswrap_create_file (handle=<optimised out>, req=<optimised out>, root_dir_fid=<optimised out>, smb_fname=<optimised out>, access_mask=<optimised out>, share_access=<optimised out>, create_disposition=1, create_options=0, file_attributes=0, oplock_request=8, allocation_size=0, private_flags=0, sd=0x0, ea_list=0x0, result=0x7fff04e32308, pinfo=0x0) at ../source3/modules/vfs_default.c:527 No locals. #14 0x00007f70724f1065 in smb_vfs_call_create_file (handle=<optimised out>, req=req@entry=0x0, root_dir_fid=root_dir_fid@entry=0, smb_fname=smb_fname@entry=0x7f7073a855a0, access_mask=access_mask@entry=2, share_access=share_access@entry=7, create_disposition=create_disposition@entry=1, create_options=create_options@entry=0, file_attributes=file_attributes@entry=0, oplock_request=oplock_request@entry=8, allocation_size=allocation_size@entry=0, private_flags=private_flags@entry=0, sd=sd@entry=0x0, ea_list=ea_list@entry=0x0, result=result@entry=0x7fff04e32308, pinfo=pinfo@entry=0x0) at ../source3/smbd/vfs.c:1544 No locals. #15 0x00007f70724e8d40 in open_file_fchmod (conn=conn@entry=0x7f7073a476a0, smb_fname=smb_fname@entry=0x7f7073a855a0, result=result@entry=0x7fff04e32308) at ../source3/smbd/open.c:2846 No locals. #16 0x00007f70724e0439 in file_set_dosmode (conn=conn@entry=0x7f7073a476a0, smb_fname=smb_fname@entry=0x7f7073a855a0, dosmode=<optimised out>, parent_dir=parent_dir@entry=0x0, newfile=newfile@entry=true) at ../source3/smbd/dosmode.c:886 mask = <optimised out> tmp = <optimised out> unixmode = 33264 ret = <optimised out> lret = -1 old_mode = <optimised out> new_create_timespec = {tv_sec = 1396532224, tv_nsec = <optimised out>} fsp = 0x0 __FUNCTION__ = "file_set_dosmode" #17 0x00007f70724c320f in rename_internals_fsp (conn=conn@entry=0x7f7073a476a0, fsp=fsp@entry=0x7f7073a953a0, smb_fname_dst_in=<optimised out>, attrs=attrs@entry=6, replace_if_exists=<optimised out>) at ../source3/smbd/reply.c:6498 old_dosmode = <optimised out> create_options = 0 ctx = <optimised out> smb_fname_dst = 0x7f7073a855a0 status = {v = 0} lck = 0x7f7073a863d0 dst_exists = <optimised out> old_is_stream = <optimised out> new_is_stream = <optimised out> __FUNCTION__ = "rename_internals_fsp" #18 0x00007f70724d8a5c in smb2_file_rename_information (req=0x7f7072b2c7a0 <DEBUGLEVEL_CLASS>, smb_fname_src=<optimised out>, fsp=0x7f7073a953a0, total_data=40, pdata=<optimised out>, conn=0x7f7073a476a0) at ../source3/smbd/trans2.c:6273 overwrite = false len = <optimised out> newname = 0x7f7073a85070 "dch.pdf" status = {v = 0} ctx = 0x7f7073a85010 smb_fname_dst = 0x7f7073a85100 #19 smbd_do_setfilepathinfo (conn=conn@entry=0x7f7073a476a0, req=req@entry=0x7f7073a27c40, mem_ctx=<optimised out>, info_level=<optimised out>, fsp=fsp@entry=0x7f7073a953a0, smb_fname=<optimised out>, ppdata=ppdata@entry=0x7fff04e32668, total_data=total_data@entry=40, ret_data_size=ret_data_size@entry=0x7fff04e3265c) at ../source3/smbd/trans2.c:8022 pdata = <optimised out> status = <optimised out> data_return_size = 0 __FUNCTION__ = "smbd_do_setfilepathinfo" #20 0x00007f707252b41f in smbd_smb2_setinfo_send (in_additional_information=0, in_input_buffer=..., in_file_info_class=10 '\n', in_info_type=1 '\001', fsp=0x7f7073a953a0, smb2req=0x7f7073a672d0, ev=0x7f7073a093a0, mem_ctx=0x7f7073a672d0) at ../source3/smbd/smb2_setinfo.c:286 file_info_level = <optimised out> data = 0x7f7073ab0920 "" data_size = 40 ret_size = 0 state = 0x7f7073a93a60 smbreq = 0x7f7073a27c40 conn = 0x7f7073a476a0 status = <optimised out> req = 0x7f7073a94260 #21 smbd_smb2_request_process_setinfo (req=req@entry=0x7f7073a672d0) at ../source3/smbd/smb2_setinfo.c:103 status = <optimised out> inbody = <optimised out> in_info_type = 1 '\001' in_file_info_class = 10 '\n' in_input_buffer_offset = <optimised out> in_input_buffer_length = 40 in_input_buffer = {data = 0x7f7073a61670 "", length = 40} in_additional_information = 0 in_file_id_persistent = <optimised out> in_file_id_volatile = <optimised out> in_fsp = 0x7f7073a953a0 __FUNCTION__ = "smbd_smb2_request_process_setinfo" #22 0x00007f7072517c21 in smbd_smb2_request_dispatch (req=req@entry=0x7f7073a672d0) at ../source3/smbd/smb2_server.c:2242 conn = 0x7f7073a0a0c0 call = <optimised out> intf_v = <optimised out> inhdr = <optimised out> opcode = 17 flags = <optimised out> mid = <optimised out> status = <optimised out> session_status = <optimised out> allowed_flags = <optimised out> return_value = <optimised out> x = <optimised out> signing_required = <optimised out> encryption_required = <optimised out> __FUNCTION__ = "smbd_smb2_request_dispatch" #23 0x00007f7072518c4b in smbd_smb2_io_handler (sconn=0x7f7073a1e110, fde_flags=<optimised out>) at ../source3/smbd/smb2_server.c:3253 state = 0x7f7073a1e268 req = 0x7f7073a672d0 min_recvfile_size = 4294967295 ret = <optimised out> err = <optimised out> retry = false status = <optimised out> now = <optimised out> __FUNCTION__ = "smbd_smb2_io_handler" #24 0x00007f70725198bc in smbd_smb2_connection_handler (ev=0x65bb, fde=0x65bb, flags=6, private_data=0xffffffffffffffff) at ../source3/smbd/smb2_server.c:3291 sconn = 0x7f7073a1e110 status = {v = 0} #25 0x00007f70714030ac in run_events_poll (ev=0x7f7073a093a0, pollrtn=<optimised out>, pfds=0x7f7073a13220, num_pfds=4) at ../source3/lib/events.c:257 pfd = <optimised out> flags = <optimised out> state = <optimised out> pollfd_idx = 0x7f7073a47220 fde = 0x7f7073a11890 pollrtn = <optimised out> num_pfds = 4 pfds = 0x7f7073a13220 ev = 0x7f7073a093a0 #26 0x00007f7071403300 in s3_event_loop_once (ev=0x7f7073a093a0, location=<optimised out>) at ../source3/lib/events.c:326 state = 0x7f7073a080e0 timeout = 42225 num_pfds = 4 poll_errno = 0 #27 0x00007f706fddb5ed in _tevent_loop_once () from /usr/lib/x86_64-linux-gnu/libtevent.so.0 No symbol table info available. #28 0x00007f707250558a in smbd_process (ev_ctx=0x7f7073a093a0, msg_ctx=<optimised out>, sock_fd=<optimised out>, interactive=<optimised out>) at ../source3/smbd/process.c:3626 frame = 0x7f7073a85010 conn = <optimised out> sconn = <optimised out> ss = {ss_family = 2, __ss_align = 0, __ss_padding = "\000\000\000\000\000\000\000\000\220\224\240sp\177\000\000\000\000\000\000\000\000\000\000v!uc\256\253\270\222!\000\000\000\000\000\000\000W\245\325rp\177\000\000\001\000\000\000p\177\000\000\000\000\000\000\000\000\000\000\220\224\240sp\177\000\000\b\254@rp\177\000\000\000\000\000\000\000\000\000\000!\000\000\000\000\000\000\000\240\223\240sp\177\000\000\025\025\326rp\177\000"} sa = 0x7fff04e32900 sa_socklen = 16 local_address = 0x7f7073a09ef0 remote_address = 0x7f7073a11b50 locaddr = <optimised out> remaddr = <optimised out> rhost = 0x0 ret = <optimised out> __FUNCTION__ = "smbd_process" #29 0x00007f7072f79fa4 in smbd_accept_connection (ev=0x7f7073a093a0, fde=<optimised out>, flags=<optimised out>, private_data=<optimised out>) at ../source3/smbd/server.c:621 status = <optimised out> s = 0x0 msg_ctx = 0x7f7073a09490 addr = {ss_family = 2, __ss_align = 0, __ss_padding = '\000' <repeats 40 times>, "\240\223\240sp\177\000\000\250Y\241sp\177\000\000\360\026\241sp\177\000\000\000\000\000\000\000\000\000\000\340\200\240sp\177\000\000\005\000\000\000\000\000\000\000!\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000 2\241sp\177\000"} in_addrlen = 16 fd = 33 pid = 0 unique_id = 10572388890733519222 __FUNCTION__ = "smbd_accept_connection" #30 0x00007f70714030ac in run_events_poll (ev=0x7f7073a093a0, pollrtn=<optimised out>, pfds=0x7f7073a13220, num_pfds=5) at ../source3/lib/events.c:257 pfd = <optimised out> flags = <optimised out> state = <optimised out> pollfd_idx = 0x7f7073a09d40 fde = 0x7f7073a1ea20 pollrtn = <optimised out> num_pfds = 5 pfds = 0x7f7073a13220 ev = 0x7f7073a093a0 #31 0x00007f7071403300 in s3_event_loop_once (ev=0x7f7073a093a0, location=<optimised out>) at ../source3/lib/events.c:326 state = 0x7f7073a080e0 timeout = 59997 num_pfds = 5 poll_errno = 4 #32 0x00007f706fddb5ed in _tevent_loop_once () from /usr/lib/x86_64-linux-gnu/libtevent.so.0 No symbol table info available. #33 0x00007f7072f76b8b in smbd_parent_loop (parent=<optimised out>, ev_ctx=0x7f7073a093a0) at ../source3/smbd/server.c:943 ret = <optimised out> frame = 0x7f7073a10420 #34 main (argc=<optimised out>, argv=<optimised out>) at ../source3/smbd/server.c:1577 is_daemon = <optimised out> interactive = <optimised out> Fork = false no_process_group = false log_stdout = <optimised out> ports = 0x0 profile_level = 0x0 opt = <optimised out> pc = <optimised out> print_build_options = 144 long_options = {{longName = 0x0, shortName = 0 '\000', argInfo = 4, arg = 0x7f70703fc340 <poptHelpOptions>, val = 0, descrip = 0x7f7072f7c0f2 "Help options:", argDescrip = 0x0}, {longName = 0x7f7072f7c100 "daemon", shortName = 68 'D', argInfo = 0, arg = 0x0, val = 1000, descrip = 0x7f7072f7c107 "Become a daemon (default)", argDescrip = 0x0}, {longName = 0x7f7072f7c121 "interactive", shortName = 105 'i', argInfo = 0, arg = 0x0, val = 1001, descrip = 0x7f7072f7cbf0 "Run interactive (not a daemon)", argDescrip = 0x0}, {longName = 0x7f7072f7c12d "foreground", shortName = 70 'F', argInfo = 0, arg = 0x0, val = 1002, descrip = 0x7f7072f7cc10 "Run daemon in foreground (for daemontools, etc.)", argDescrip = 0x0}, {longName = 0x7f7072f7c138 "no-process-group", shortName = 0 '\000', argInfo = 0, arg = 0x0, val = 1003, descrip = 0x7f7072f7cc48 "Don't create a new process group", argDescrip = 0x0}, {longName = 0x7f7072f7c149 "log-stdout", shortName = 83 'S', argInfo = 0, arg = 0x0, val = 1004, descrip = 0x7f7072f7c154 "Log to stdout", argDescrip = 0x0}, {longName = 0x7f7072f7c162 "build-options", shortName = 98 'b', argInfo = 0, arg = 0x0, val = 98, descrip = 0x7f7072f7c170 "Print build options", argDescrip = 0x0}, {longName = 0x7f7072f7c184 "port", shortName = 112 'p', argInfo = 1, arg = 0x7fff04e32be0, val = 0, descrip = 0x7f7072f7c189 "Listen on the specified ports", argDescrip = 0x0}, {longName = 0x7f7072f7c1a7 "profiling-level", shortName = 80 'P', argInfo = 1, arg = 0x7fff04e32be8, val = 0, descrip = 0x7f7072f7c1b7 "Set profiling level", argDescrip = 0x7f7072f7c1cb "PROFILE_LEVEL"}, {longName = 0x0, shortName = 0 '\000', argInfo = 4, arg = 0x7f7071a716e0 <popt_common_samba>, val = 0, descrip = 0x7f7072f7c1d9 "Common samba options:", argDescrip = 0x0}, {longName = 0x0, shortName = 0 '\000', argInfo = 4, arg = 0x7f7071a70aa0 <popt_common_dynconfig>, val = 0, descrip = 0x7f7072f7cc70 "Build-time configuration overrides:", argDescrip = 0x0}, {longName = 0x0, shortName = 0 '\000', argInfo = 0, arg = 0x0, val = 0, descrip = 0x0, argDescrip = 0x0}} parent = 0x7f7073a116f0 frame = <optimised out> status = <optimised out> ev_ctx = 0x7f7073a093a0 msg_ctx = 0x7f7073a09490 server_id = {pid = 21886, task_id = 0, vnn = 4294967295, unique_id = 8071181508398727056} se = <optimised out> np_dir = <optimised out> smbd_shim_fns = {cancel_pending_lock_requests_by_fid = 0x7f70724ef2e0 <smbd_cancel_pending_lock_requests_by_fid>, send_stat_cache_delete_message = 0x7f70724f4de0 <smbd_send_stat_cache_delete_message>, change_to_root_user = 0x7f70724de330 <smbd_change_to_root_user>, contend_level2_oplocks_begin = 0x7f707253a930 <smbd_contend_level2_oplocks_begin>, contend_level2_oplocks_end = 0x7f707253aa90 <smbd_contend_level2_oplocks_end>, become_root = 0x7f70724de410 <smbd_become_root>, unbecome_root = 0x7f70724de440 <smbd_unbecome_root>, exit_server = 0x7f7072533b90 <smbd_exit_server>, exit_server_cleanly = 0x7f7072533bb0 <smbd_exit_server_cleanly>} __FUNCTION__ = "main"
This seems to be related to setting 'dos filemode = yes'.
Tracking this problem in bug #10564. *** This bug has been marked as a duplicate of bug 10564 ***