Investigating the listtransactions crash, I ran across this unrelated bad-use-of-memory-on-shutdown issue.
Looks like the new multithreaded RPC code has a bug.
==61723== Memcheck, a memory error detector
==61723== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==61723== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==61723== Command: bitcoind -datadir=/Users/gavin/ccut/1
==61723==
--61723-- run: /usr/bin/dsymutil "./bitcoind"
==61723== Thread 3:
==61723== Invalid read of size 4
==61723== at 0x14757E: boost::asio::detail::reactive_socket_service_base::destroy(boost::asio::detail::reactive_socket_service_base::base_implementation_type&) (reactive_socket_service_base.ipp:87)
==61723== by 0x1475F8: boost::asio::stream_socket_service<boost::asio::ip::tcp>::destroy(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&) (stream_socket_service.hpp:119)
==61723== by 0x147620: boost::asio::basic_io_object<boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_io_object() (basic_io_object.hpp:124)
==61723== by 0x14763C: boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_socket() (basic_socket.hpp:1455)
==61723== by 0x147658: boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_stream_socket() (basic_stream_socket.hpp:47)
==61723== by 0x1477D9: boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >::~stream() (stream.hpp:114)
==61723== by 0x147882: AcceptedConnectionImpl<boost::asio::ip::tcp>::~AcceptedConnectionImpl() (bitcoinrpc.cpp:2539)
==61723== by 0x93F3B: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2879)
==61723== by 0x93DE3: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2863)
==61723== by 0x93DE3: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2863)
==61723== by 0x93DE3: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2863)
==61723== by 0x93DE3: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2863)
==61723== Address 0x4c38c44 is 20 bytes inside a block of size 24 free'd
==61723== at 0x120C477: operator delete(void*) (vg_replace_malloc.c:387)
==61723== by 0xE2B4A: boost::asio::stream_socket_service<boost::asio::ip::tcp>::~stream_socket_service() (stream_socket_service.hpp:42)
==61723== by 0xA4EA5: boost::asio::detail::service_registry::destroy(boost::asio::io_service::service*) (service_registry.ipp:101)
==61723== by 0x119819: boost::asio::detail::service_registry::~service_registry() (service_registry.ipp:45)
==61723== by 0x1198CC: boost::asio::io_service::~io_service() (io_service.ipp:53)
==61723== by 0x8C83E: ThreadRPCServer2(void*) (bitcoinrpc.cpp:2782)
==61723== by 0x8D5BB: ThreadRPCServer(void*) (bitcoinrpc.cpp:2584)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)
==61723== by 0x1261258: _pthread_start (in /usr/lib/libSystem.B.dylib)
==61723==
==61723== Invalid read of size 4
==61723== at 0x1239474: pthread_mutex_lock (in /usr/lib/libSystem.B.dylib)
==61723== by 0x11AE34: boost::asio::detail::posix_mutex::lock() (posix_mutex.hpp:52)
==61723== by 0x11AE6C: boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>::scoped_lock(boost::asio::detail::posix_mutex&) (scoped_lock.hpp:36)
==61723== by 0x140A8C: boost::asio::detail::kqueue_reactor::deregister_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&, bool) (kqueue_reactor.ipp:280)
==61723== by 0x147596: boost::asio::detail::reactive_socket_service_base::destroy(boost::asio::detail::reactive_socket_service_base::base_implementation_type&) (reactive_socket_service_base.ipp:87)
==61723== by 0x1475F8: boost::asio::stream_socket_service<boost::asio::ip::tcp>::destroy(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&) (stream_socket_service.hpp:119)
==61723== by 0x147620: boost::asio::basic_io_object<boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_io_object() (basic_io_object.hpp:124)
==61723== by 0x14763C: boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_socket() (basic_socket.hpp:1455)
==61723== by 0x147658: boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_stream_socket() (basic_stream_socket.hpp:47)
==61723== by 0x1477D9: boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >::~stream() (stream.hpp:114)
==61723== by 0x147882: AcceptedConnectionImpl<boost::asio::ip::tcp>::~AcceptedConnectionImpl() (bitcoinrpc.cpp:2539)
==61723== by 0x93F3B: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2879)
==61723== Address 0x4a88428 is 8 bytes inside a block of size 84 free'd
==61723== at 0x120C477: operator delete(void*) (vg_replace_malloc.c:387)
==61723== by 0x11973F: void boost::asio::detail::object_pool_access::destroy<boost::asio::detail::kqueue_reactor::descriptor_state>(boost::asio::detail::kqueue_reactor::descriptor_state*) (object_pool.hpp:41)
==61723== by 0x11977A: boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::destroy_list(boost::asio::detail::kqueue_reactor::descriptor_state*) (object_pool.hpp:131)
==61723== by 0x1197BC: boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::~object_pool() (object_pool.hpp:73)
==61723== by 0x13F2E1: boost::asio::detail::kqueue_reactor::~kqueue_reactor() (kqueue_reactor.ipp:59)
==61723== by 0xA4EA5: boost::asio::detail::service_registry::destroy(boost::asio::io_service::service*) (service_registry.ipp:101)
==61723== by 0x119819: boost::asio::detail::service_registry::~service_registry() (service_registry.ipp:45)
==61723== by 0x1198CC: boost::asio::io_service::~io_service() (io_service.ipp:53)
==61723== by 0x8C83E: ThreadRPCServer2(void*) (bitcoinrpc.cpp:2782)
==61723== by 0x8D5BB: ThreadRPCServer(void*) (bitcoinrpc.cpp:2584)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)
==61723==
==61723== Invalid read of size 1
==61723== at 0x140A92: boost::asio::detail::kqueue_reactor::deregister_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&, bool) (kqueue_reactor.ipp:282)
==61723== by 0x147596: boost::asio::detail::reactive_socket_service_base::destroy(boost::asio::detail::reactive_socket_service_base::base_implementation_type&) (reactive_socket_service_base.ipp:87)
==61723== by 0x1475F8: boost::asio::stream_socket_service<boost::asio::ip::tcp>::destroy(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&) (stream_socket_service.hpp:119)
==61723== by 0x147620: boost::asio::basic_io_object<boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_io_object() (basic_io_object.hpp:124)
==61723== by 0x14763C: boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_socket() (basic_socket.hpp:1455)
==61723== by 0x147658: boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_stream_socket() (basic_stream_socket.hpp:47)
==61723== by 0x1477D9: boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >::~stream() (stream.hpp:114)
==61723== by 0x147882: AcceptedConnectionImpl<boost::asio::ip::tcp>::~AcceptedConnectionImpl() (bitcoinrpc.cpp:2539)
==61723== by 0x93F3B: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2879)
==61723== by 0x93DE3: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2863)
==61723== by 0x93DE3: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2863)
==61723== by 0x93DE3: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2863)
==61723== Address 0x4a88470 is 80 bytes inside a block of size 84 free'd
==61723== at 0x120C477: operator delete(void*) (vg_replace_malloc.c:387)
==61723== by 0x11973F: void boost::asio::detail::object_pool_access::destroy<boost::asio::detail::kqueue_reactor::descriptor_state>(boost::asio::detail::kqueue_reactor::descriptor_state*) (object_pool.hpp:41)
==61723== by 0x11977A: boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::destroy_list(boost::asio::detail::kqueue_reactor::descriptor_state*) (object_pool.hpp:131)
==61723== by 0x1197BC: boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::~object_pool() (object_pool.hpp:73)
==61723== by 0x13F2E1: boost::asio::detail::kqueue_reactor::~kqueue_reactor() (kqueue_reactor.ipp:59)
==61723== by 0xA4EA5: boost::asio::detail::service_registry::destroy(boost::asio::io_service::service*) (service_registry.ipp:101)
==61723== by 0x119819: boost::asio::detail::service_registry::~service_registry() (service_registry.ipp:45)
==61723== by 0x1198CC: boost::asio::io_service::~io_service() (io_service.ipp:53)
==61723== by 0x8C83E: ThreadRPCServer2(void*) (bitcoinrpc.cpp:2782)
==61723== by 0x8D5BB: ThreadRPCServer(void*) (bitcoinrpc.cpp:2584)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)
==61723==
==61723== Invalid read of size 4
==61723== at 0x1239775: pthread_mutex_unlock (in /usr/lib/libSystem.B.dylib)
==61723== by 0x11B124: boost::asio::detail::posix_mutex::unlock() (posix_mutex.hpp:58)
==61723== by 0x11B17C: boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>::~scoped_lock() (scoped_lock.hpp:44)
==61723== by 0x140C99: boost::asio::detail::kqueue_reactor::deregister_descriptor(int, boost::asio::detail::kqueue_reactor::descriptor_state*&, bool) (kqueue_reactor.ipp:319)
==61723== by 0x147596: boost::asio::detail::reactive_socket_service_base::destroy(boost::asio::detail::reactive_socket_service_base::base_implementation_type&) (reactive_socket_service_base.ipp:87)
==61723== by 0x1475F8: boost::asio::stream_socket_service<boost::asio::ip::tcp>::destroy(boost::asio::detail::reactive_socket_service<boost::asio::ip::tcp>::implementation_type&) (stream_socket_service.hpp:119)
==61723== by 0x147620: boost::asio::basic_io_object<boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_io_object() (basic_io_object.hpp:124)
==61723== by 0x14763C: boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_socket() (basic_socket.hpp:1455)
==61723== by 0x147658: boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >::~basic_stream_socket() (basic_stream_socket.hpp:47)
==61723== by 0x1477D9: boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >::~stream() (stream.hpp:114)
==61723== by 0x147882: AcceptedConnectionImpl<boost::asio::ip::tcp>::~AcceptedConnectionImpl() (bitcoinrpc.cpp:2539)
==61723== by 0x93F3B: ThreadRPCServer3(void*) (bitcoinrpc.cpp:2879)
==61723== Address 0x4a88428 is 8 bytes inside a block of size 84 free'd
==61723== at 0x120C477: operator delete(void*) (vg_replace_malloc.c:387)
==61723== by 0x11973F: void boost::asio::detail::object_pool_access::destroy<boost::asio::detail::kqueue_reactor::descriptor_state>(boost::asio::detail::kqueue_reactor::descriptor_state*) (object_pool.hpp:41)
==61723== by 0x11977A: boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::destroy_list(boost::asio::detail::kqueue_reactor::descriptor_state*) (object_pool.hpp:131)
==61723== by 0x1197BC: boost::asio::detail::object_pool<boost::asio::detail::kqueue_reactor::descriptor_state>::~object_pool() (object_pool.hpp:73)
==61723== by 0x13F2E1: boost::asio::detail::kqueue_reactor::~kqueue_reactor() (kqueue_reactor.ipp:59)
==61723== by 0xA4EA5: boost::asio::detail::service_registry::destroy(boost::asio::io_service::service*) (service_registry.ipp:101)
==61723== by 0x119819: boost::asio::detail::service_registry::~service_registry() (service_registry.ipp:45)
==61723== by 0x1198CC: boost::asio::io_service::~io_service() (io_service.ipp:53)
==61723== by 0x8C83E: ThreadRPCServer2(void*) (bitcoinrpc.cpp:2782)
==61723== by 0x8D5BB: ThreadRPCServer(void*) (bitcoinrpc.cpp:2584)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)
==61723== by 0x8D571: ThreadRPCServer(void*) (bitcoinrpc.cpp:2576)