History log of /6.6.0/third_party/spdlog/ (Results 1 - 25 of 1799)
Revision (<<< Hide revision tags) (Show revision tags >>>)Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
20967a1705-Jul-2019 Trond Norbye <trond.norbye@gmail.com>

Merge pull request #6 from BenHuddleston/couchbase

MB-34778: Defer destruction of shared_ptr in registry


0e8ea46605-Jul-2019 Ben Huddleston <ben.huddleston@couchbase.com>

MB-34778: Defer destruction of shared_ptr in registry

If we are iterating on the loggers_ map in the registry and
the function is the last thing to own the shared_ptr then the
destru

MB-34778: Defer destruction of shared_ptr in registry

If we are iterating on the loggers_ map in the registry and
the function is the last thing to own the shared_ptr then the
destruction (if it is a BucketLogger) will cause the element to
be erased from loggers_. This frees the iterator which causes ASAN
and TSan to report a heap use after free when we attempt to
increment the iterator. We can defer the destruction of the
shared_ptr to after we have advanced the iterator by storing the
latest one outside of the loop. When we overwrite it, (or when we
go out of scope) we will destroy the shared_ptr which is fine as we
no longer have an iterator pointing to it (erase does not invalidate
any other iterators).

Change-Id: If6ef0964d32ce8f03a9cbe34c84c0557f6d541bd

show more ...

c7c5129704-Jul-2019 Trond Norbye <trond.norbye@gmail.com>

Merge pull request #5 from BenHuddleston/couchbase

MB-34778: Make logger_map_mutex_ recursive.


c7da4dc402-Jul-2019 Ben Huddleston <ben.huddleston@couchbase.com>

MB-34778: Make logger_map_mutex_ recursive.

The destruction of a BucketLogger calls
cb::logger::unregister_logger to remove the logger from the spdlog
registry. This caused a deadloc

MB-34778: Make logger_map_mutex_ recursive.

The destruction of a BucketLogger calls
cb::logger::unregister_logger to remove the logger from the spdlog
registry. This caused a deadlock in spdlog when the background
flushing thread was the only owner of the shared_ptr. It would
attempt to destruct the BucketLogger but deadlock as it already held
the logger_map_mutex_ in spdlog::registry. Update spdlog registry to
make this mutex recursive which will allow the double locking by this
thread.

Change-Id: I5abed34e0f9614c55c0efef4126290b594aedc35

show more ...

12f0309b02-Jan-2019 Chris Hillery <ceejatec@users.noreply.github.com>

Merge pull request #4 from BenHuddleston/pullreq

MB-32245: Fix shared_ptr race in spdlog registry


3ed184da12-Dec-2018 Ben Huddleston <ben.huddleston@couchbase.com>

MB-32245: Fix shared_ptr race in spdlog registry

https://issues.couchbase.com/browse/MB-32245

In changing the spdlog registry to use weak_ptr's, a race condition
was introduced.

MB-32245: Fix shared_ptr race in spdlog registry

https://issues.couchbase.com/browse/MB-32245

In changing the spdlog registry to use weak_ptr's, a race condition
was introduced. A shared_ptr to a BucketLogger may be destructed,
dropping the internal reference count to 0. If any other thread blocks
this thread from unregistering the BucketLogger in the BucketLogger
destructor by acquiring the logger_map_mutex_, then the blocking thread
can access the loggers_ map in an invalid state that can cause a
segmentation fault. This is best described by a diagram found in the
comments on the jira issue.

To fix this, check the validity of the shared_ptr we create when we
call lock() on the stored weak_ptr. If it's not valid, ignore the entry
in the map. The thread currently blocked by the mutex in the drop
function (called by unregisterSpdlogger) will cleanup the map. If we
were to cleanup the map when we find an invalid weak_ptr, we would open
ourselves to another potential issue where we could register another
logger with the same name on a different thread, then unregister it
immediately with the destructing thread (if you ignore that we try to
guarantee unique names). This wouldn't seg fault, but we wouldn't be
able to change the verbosity of the newly created logger.

Change-Id: I54f475901ff26940ecedb1cabc37a29e4347a46c

show more ...

e67e010912-Dec-2018 Ben Huddleston <ben.huddleston@couchbase.com>

MB-32245: Fix shared_ptr race in spdlog registry

In changing the spdlog registry to use weak_ptr's, a race condition
was introduced. A shared_ptr to a BucketLogger may be destructed,

MB-32245: Fix shared_ptr race in spdlog registry

In changing the spdlog registry to use weak_ptr's, a race condition
was introduced. A shared_ptr to a BucketLogger may be destructed,
dropping the internal reference count to 0. If any other thread blocks
this thread from unregistering the BucketLogger in the BucketLogger
destructor by acquiring the logger_map_mutex_, then the blocking thread
can access the loggers_ map in an invalid state that can cause a
segmentation fault. This is best described by a diagram found in the
comments on the jira issue.

To fix this, check the validity of the shared_ptr we create when we
call lock() on the stored weak_ptr. If it's not valid, ignore the entry
in the map. The thread currently blocked by the mutex in the drop
function (called by unregisterSpdlogger) will cleanup the map. If we
were to cleanup the map when we find an invalid weak_ptr, we would open
ourselves to another potential issue where we could register another
logger with the same name on a different thread, then unregister it
immediately with the destructing thread (if you ignore that we try to
guarantee unique names). This wouldn't seg fault, but we wouldn't be
able to change the verbosity of the newly created logger.

Change-Id: I54f475901ff26940ecedb1cabc37a29e4347a46c

show more ...

1a4e7c6003-Oct-2018 Chris Hillery <ceejatec@users.noreply.github.com>

Merge pull request #3 from BenHuddleston/revert-2-MB-30302

Revert "MB-30798: Update spdlog to version 1.1.0"


748906a020-Sep-2018 Ben Huddleston <40238853+BenHuddleston@users.noreply.github.com>

Revert "MB-30798: Update spdlog to verion 1.1.0"

efe0089220-Sep-2018 Chris Hillery <ceejatec@users.noreply.github.com>

Merge pull request #2 from BenHuddleston/MB-30302

MB-30798: Update spdlog to verion 1.1.0


4296c4f620-Sep-2018 Ben Huddleston <ben.huddleston@couchbase.com>

MB-30798: Update spdlog to verion 1.1.0

Rename the CMakeLists targets so that we do not conflict with
the prexisting spdlog version

73f1116d06-Sep-2018 Chris Hillery <ceejatec@users.noreply.github.com>

Merge pull request #1 from BenHuddleston/MB-30302

MB-30798 & MB-30302


bff5492724-Aug-2018 Ben Huddleston <benhuddleston@EMEAUKMAC01.local>

MB-30302: Use weak_ptr's in the spdlog registry

Use weak_ptr's in the spdlog registry so that we can delete
loggers when they fall out of scope within kv engine.

7cb9394424-Aug-2018 Ben Huddleston <benhuddleston@EMEAUKMAC01.local>

MB-30798: Rename benchmark executable to prevent name collision

Revision tags: v1.1.0
b6b9d83515-Aug-2018 gabime <gmelman1@gmail.com>

Version 1.1.0

ebea09c815-Aug-2018 gabime <gmelman1@gmail.com>

Added pedantic flag to compiler in cmake

137f801e15-Aug-2018 gabime <gmelman1@gmail.com>

Merge branch 'v1.x' of https://github.com/gabime/spdlog into v1.x


3d58f8d415-Aug-2018 gabime <gmelman1@gmail.com>

code formatting

b962fbb115-Aug-2018 gabime <gmelman1@gmail.com>

Fixed issue #797

e8927dc714-Aug-2018 Gabi Melman <gmelman1@gmail.com>

Merge pull request #796 from DanielChabrowski/cmake-refactor

Little cmake and tests refactor


fb37585b14-Aug-2018 Daniel Chabrowski <dantezstudio@gmail.com>

Little cmake and tests refactor

Change from spdlog_ex to const spdlog_ex& got rid of the GCC8 warning.

4a871b9714-Aug-2018 gabime <gmelman1@gmail.com>

Added some mpmc_q tests

057bf1b914-Aug-2018 gabime <gmelman1@gmail.com>

Added some mpmc_q tests

750b520f14-Aug-2018 gabime <gmelman1@gmail.com>

Fix broken build

c23f36c714-Aug-2018 Gabi Melman <gmelman1@gmail.com>

Merge pull request #795 from indiosmo/queue_full_counter

Expose a counter for how many messages were dropped in async mode


12345678910>>...72