Skip to content

Wip freebsdport rebased#2

Closed
stass wants to merge 14 commits intoceph:masterfrom
stass:wip-freebsdport-rebased
Closed

Wip freebsdport rebased#2
stass wants to merge 14 commits intoceph:masterfrom
stass:wip-freebsdport-rebased

Conversation

@stass
Copy link
Contributor

@stass stass commented Oct 4, 2011

Hi!

I rebased my FreeBSD tree against the new master as you requested.
Let me know if you need anything else.

With these changes ceph's mon and osd work stabled under FreeBSD for me.
I didn't tried ceph filesystem itself yet.

stass added 14 commits October 4, 2011 16:15
Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
…essfully

under FreeBSD.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
parameter.  Ceph passes Linux setxattr flags on the wire without
converting them, so use the same values for these defitions.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
     btrfs_ioctl.h to compile and relying on the btrfs runtime checks
     wherever possible.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
     are system-dependent.  In future, we'll probably want to use system
     independent values as Ceph result codes, not system errno values.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
the system-dependent extattr code can be moved into a single
place.  Implement FreeBSD and Darwin support.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
     code is returned from getxattr.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
the buffer provided was too small similar to what Linux does.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
…sed in sa_len on FreeBSD,

                 not just a size of the whole sockaddr_storage placeholder.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
…e of the

                 address object.  Also, do not assume ss_family is 2 bytes
                 on all platforms.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
so they won't interfere with system definitions.

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
                 otherwise they fail on FreeBSD (and possibly on other
                 platforms).

Signed-off-by:	Stanislav Sedov <stas@FreeBSD.org>
@stass
Copy link
Contributor Author

stass commented Oct 5, 2011

Hi!

Actually, use the wip-freebsdport-rebased2 branch.
The wip-freebsdport-rebased branch contains commits rebased against the older version of master.
Sorry.

@liewegas
Copy link
Member

liewegas commented Oct 7, 2011

I merged this into a wip-freebsd branch in ceph.git. I'm going to wait until after v0.37 is branched off before merging, though, so that we have a full 2 weeks to shake out any issues.

THanks!

@stass
Copy link
Contributor Author

stass commented Oct 10, 2011

Sounds good, thanks!

@stass stass closed this Oct 10, 2011
@stass
Copy link
Contributor Author

stass commented Oct 21, 2011

Hey, Sage!

Now when 0.37 is out can we merge wip-freebsd into the master?
Thanks!

@liewegas
Copy link
Member

I forgot to merge this first thing after 0.37 branched. :( It's late in the cycle now but i'll pull this in right after 0.38 branches off (early next week).

@stass
Copy link
Contributor Author

stass commented Oct 26, 2011

Ok!

I just rebased my changes agains the new master, and pushed them to wip-freebsdport-rebased3 (if that's easier).
Thanks!

@stass
Copy link
Contributor Author

stass commented Nov 3, 2011

Thanks for merging it!

liewegas pushed a commit that referenced this pull request Nov 9, 2011
These were static in auth/Crypto.cc, which was mostly fine, except when
we got a signal shutting everything down for the gcov stuff, like so:

Thread 21 (Thread 2164):
#0  0x00007f31a800b3cd in open64 () from /lib/libpthread.so.0
#1  0x000000000081dee0 in __gcov_open ()
#2  0x000000000081e3fd in gcov_exit ()
#3  0x00007f31a67e64f2 in exit () from /lib/libc.so.6
#4  0x000000000054e1ca in handle_signal (signal=<value optimized out>) at osd/OSD.cc:600
#5  <signal handler called>
#6  0x00007f31a8007a9a in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#7  0x0000000000636d7b in Wait (this=0x2241000) at ./common/Cond.h:48
#8  SimpleMessenger::wait (this=0x2241000) at msg/SimpleMessenger.cc:2637
#9  0x00000000004a4e35 in main (argc=<value optimized out>, argv=<value optimized out>) at ceph_osd.cc:343

and a racing thread would, say, accept a connection and then crash, like
so:

#0  0x00007f31a800ba0b in raise () from /lib/libpthread.so.0
#1  0x0000000000696eeb in reraise_fatal (signum=2164) at global/signal_handler.cc:59
#2  0x00000000006976cc in handle_fatal_signal (signum=<value optimized out>) at global/signal_handler.cc:106
#3  <signal handler called>
#4  0x00007f31a67e0ba5 in raise () from /lib/libc.so.6
#5  0x00007f31a67e46b0 in abort () from /lib/libc.so.6
#6  0x00007f31a70846bd in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#7  0x00007f31a7082906 in ?? () from /usr/lib/libstdc++.so.6
#8  0x00007f31a7082933 in std::terminate() () from /usr/lib/libstdc++.so.6
#9  0x00007f31a708328f in __cxa_pure_virtual () from /usr/lib/libstdc++.so.6
#10 0x0000000000690e5b in CryptoKey::decrypt (this=0x7f3195a67510, in=..., out=..., error=...) at auth/Crypto.cc:404
#11 0x000000000079ccee in void decode_decrypt_enc_bl<CephXServiceTicketInfo>(CephXServiceTicketInfo&, CryptoKey, ceph::buffer::list&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ()
#12 0x0000000000795ca3 in cephx_verify_authorizer (cct=0x2232000, keys=<value optimized out>, indata=...,
    ticket_info=<value optimized out>, reply_bl=<value optimized out>) at auth/cephx/CephxProtocol.cc:438
#13 0x00000000007a17cf in CephxAuthorizeHandler::verify_authorizer (this=<value optimized out>, cct=0x2232000, keys=0x2256000,
    authorizer_data=<value optimized out>, authorizer_reply=..., entity_name=..., global_id=@0x7f3195a67848, caps_info=...,
    auid=0x7f3195a67840) at auth/cephx/CephxAuthorizeHandler.cc:21
#14 0x00000000005577ff in OSD::ms_verify_authorizer (this=0x2267000, con=0x230da00, peer_type=<value optimized out>,
    protocol=<value optimized out>, authorizer_data=<value optimized out>, authorizer_reply=<value optimized out>,
    isvalid=@0x7f3195a67c0f) at osd/OSD.cc:2723
#15 0x0000000000611ce1 in ms_deliver_verify_authorizer (this=<value optimized out>, con=0x230da00, peer_type=4, protocol=2,
    authorizer=<value optimized out>, authorizer_reply=<value optimized out>, isvalid=@0x7f3195a67c0f) at msg/Messenger.h:145
#16 SimpleMessenger::verify_authorizer (this=<value optimized out>, con=0x230da00, peer_type=4, protocol=2,
    authorizer=<value optimized out>, authorizer_reply=<value optimized out>, isvalid=@0x7f3195a67c0f)
    at msg/SimpleMessenger.cc:2419
#17 0x00000000006309ab in SimpleMessenger::Pipe::accept (this=0x22ce280) at msg/SimpleMessenger.cc:756
#18 0x0000000000634711 in SimpleMessenger::Pipe::reader (this=0x22ce280) at msg/SimpleMessenger.cc:1546
#19 0x00000000004a7085 in SimpleMessenger::Pipe::Reader::entry (this=<value optimized out>) at msg/SimpleMessenger.h:208
#20 0x000000000060f252 in Thread::_entry_func (arg=0x874) at common/Thread.cc:42
#21 0x00007f31a8003971 in start_thread () from /lib/libpthread.so.0
#22 0x00007f31a689392d in clone () from /lib/libc.so.6
#23 0x0000000000000000 in ?? ()

Instead, put these on the heap.  Set them up in the ceph::crypto::init()
method, and tear them down in ceph::crypto::shutdown().

Fixes: #1633
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
liewegas added a commit that referenced this pull request Nov 23, 2011
Shut down MonClient before messenger, to avoid race with MonClient::tick()
and MonClient::shutdown().

Fixes

#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x00007f44475e2849 in _L_lock_953 () from /lib/libpthread.so.0
#2  0x00007f44475e266b in __pthread_mutex_lock (mutex=0x14d8dc8) at pthread_mutex_lock.c:61
#3  0x00000000005ae090 in Mutex::Lock (this=0x14d8db8, no_lockdep=false) at ./common/Mutex.h:108
#4  0x000000000068440e in MonClient::shutdown (this=0x14d8c30) at mon/MonClient.cc:386
#5  0x00000000005b2653 in ceph_tool_common_shutdown (ctx=0x14d84c0) at tools/common.cc:661
#6  0x00000000005ada29 in main (argc=7, argv=0x7fff8a2394c8) at tools/ceph.cc:304

vs

#0  0x00007f44475e8a0b in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:42
#1  0x00000000005eff6b in reraise_fatal (signum=11) at global/signal_handler.cc:59
#2  0x00000000005f0165 in handle_fatal_signal (signum=11) at global/signal_handler.cc:106
#3  <signal handler called>
#4  0x0000000000000000 in ?? ()
#5  0x000000000068661a in MonClient::tick (this=0x14d8c30) at mon/MonClient.cc:621
#6  0x0000000000689e3b in MonClient::C_Tick::finish(int) ()
#7  0x000000000061b3c5 in SafeTimer::timer_thread (this=0x14d8df8) at common/Timer.cc:102
#8  0x000000000061c6f0 in SafeTimerThread::entry() ()
#9  0x00000000005f1219 in Thread::_entry_func (arg=0x14e1a00) at common/Thread.cc:41
#10 0x00007f44475e0971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#11 0x00007f4445ead92d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Signed-off-by: Sage Weil <sage@newdream.net>
jecluis pushed a commit that referenced this pull request Oct 17, 2012
CID 716947 (#1 of 2): Missing unlock (LOCK)
CID 716947 (#2 of 2): Missing unlock (LOCK)
At (25): Returning without unlocking "this->lock._m".

There were a couple of cases in Monitor::init() that could lead us to
return without properly unlocking. Coverity gets mad props for uncovering
this.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
liewegas pushed a commit that referenced this pull request Oct 19, 2012
Add asserts...

At (5): Function "MDCache::get_dirfrag(dirfrag_t)" returns null (checked 33 out of 39 times). [show details]
At (6): Assigning: "dir" = null return value from "MDCache::get_dirfrag(dirfrag_t)".
CID 717007 (#1 of 1): Dereference null return value (NULL_RETURNS)
At (7): Dereferencing a pointer that might be null "dir" when calling "MDCache::adjust_bounded_subtree_auth(CDir *, std::vector<dirfrag_t, std::allocator<dirfrag_t> > &, std::pair<int, int>)". [show details]

CID 717006 (#1 of 1): Dereference null return value (NULL_RETURNS)
At (5): Dereferencing a pointer that might be null "dir" when calling "MDCache::adjust_bounded_subtree_auth(CDir *, std::vector<dirfrag_t, std::allocator<dirfrag_t> > &, std::pair<int, int>)". [show details]

CID 717005 (#2 of 2): Dereference null return value (NULL_RETURNS)
At (22): Dereferencing a pointer that might be null "dir" when calling "MDCache::adjust_bounded_subtree_auth(CDir *, std::vector<dirfrag_t, std::allocator<dirfrag_t> > &, int)". [show details]

Signed-off-by: Sage Weil <sage@inktank.com>
jecluis pushed a commit that referenced this pull request Oct 26, 2012
CID 716947 (#1 of 2): Missing unlock (LOCK)
CID 716947 (#2 of 2): Missing unlock (LOCK)
At (25): Returning without unlocking "this->lock._m".

There were a couple of cases in Monitor::init() that could lead us to
return without properly unlocking. Coverity gets mad props for uncovering
this.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
liewegas pushed a commit that referenced this pull request Oct 26, 2012
Add asserts...

At (5): Function "MDCache::get_dirfrag(dirfrag_t)" returns null (checked 33 out of 39 times). [show details]
At (6): Assigning: "dir" = null return value from "MDCache::get_dirfrag(dirfrag_t)".
CID 717007 (#1 of 1): Dereference null return value (NULL_RETURNS)
At (7): Dereferencing a pointer that might be null "dir" when calling "MDCache::adjust_bounded_subtree_auth(CDir *, std::vector<dirfrag_t, std::allocator<dirfrag_t> > &, std::pair<int, int>)". [show details]

CID 717006 (#1 of 1): Dereference null return value (NULL_RETURNS)
At (5): Dereferencing a pointer that might be null "dir" when calling "MDCache::adjust_bounded_subtree_auth(CDir *, std::vector<dirfrag_t, std::allocator<dirfrag_t> > &, std::pair<int, int>)". [show details]

CID 717005 (#2 of 2): Dereference null return value (NULL_RETURNS)
At (22): Dereferencing a pointer that might be null "dir" when calling "MDCache::adjust_bounded_subtree_auth(CDir *, std::vector<dirfrag_t, std::allocator<dirfrag_t> > &, int)". [show details]

Signed-off-by: Sage Weil <sage@inktank.com>
liewegas pushed a commit that referenced this pull request Nov 16, 2012
CID 743405 (#2 of 2): Resource leak (RESOURCE_LEAK)
At (16): Handle variable "fd" going out of scope leaks the handle.

Signed-off-by: Sage Weil <sage@inktank.com>
liewegas pushed a commit that referenced this pull request Nov 18, 2012
Before the mon, and lockdep, in particular.

#0  __pthread_mutex_lock (mutex=0x30) at pthread_mutex_lock.c:50
#1  0x0000000000816092 in ceph::log::Log::submit_entry (this=0x0, e=0x2f4a270) at log/Log.cc:138
#2  0x00000000007ee0f8 in handle_fatal_signal (signum=11) at global/signal_handler.cc:100
#3  <signal handler called>
#4  0x00000000008e1300 in lockdep_will_lock (name=0x959aa7 "SignalHandler::lock", id=17) at common/lockdep.cc:163
#5  0x00000000008867fc in Mutex::_will_lock (this=0x2f20428) at ./common/Mutex.h:56
#6  0x0000000000886605 in Mutex::Lock (this=0x2f20428, no_lockdep=false) at common/Mutex.cc:81
#7  0x00000000007eeb95 in SignalHandler::entry (this=0x2f20300) at global/signal_handler.cc:198
#8  0x00000000008b0bd1 in Thread::_entry_func (arg=0x2f20300) at common/Thread.cc:43
#9  0x00007f36fefd6b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#10 0x00007f36fd80b6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

#0  0x00007f36fefd7e75 in pthread_join (threadid=139874129766144, thread_return=0x0) at pthread_join.c:89
#1  0x00000000008b11ec in Thread::join (this=0x2f20300, prval=0x0) at common/Thread.cc:130
#2  0x00000000007eeae7 in SignalHandler::shutdown (this=0x2f20300) at global/signal_handler.cc:186
#3  0x00000000007ee9cf in SignalHandler::~SignalHandler (this=0x2f20300, __in_chrg=<optimized out>) at global/signal_handler.cc:175
#4  0x00000000007eea58 in SignalHandler::~SignalHandler (this=0x2f20300, __in_chrg=<optimized out>) at global/signal_handler.cc:176
#5  0x00000000007ee643 in shutdown_async_signal_handler () at global/signal_handler.cc:324
#6  0x00000000006de9d2 in main (argc=7, argv=0x7fffbfb8a1e8) at ceph_mon.cc:439

Signed-off-by: Sage Weil <sage@inktank.com>
@dang dang mentioned this pull request Jun 2, 2023
14 tasks
@samarahu samarahu mentioned this pull request Mar 21, 2025
14 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants