{"push_id":995597301,"size":9,"distinct_size":9,"ref":"refs/heads/master","head":"e5ad4a3a2f1f7f3dc6c8d5ee3482f305bc7a2be9","before":"b9a2c47cac6a96d76c1a16e121a259d132a1b3b7","commits":[{"sha":"8a8ca6b2db1927443b09a9ad4c8f7e4d0217fabf","author":{"email":"d58937203e26cc30374db65976436805131024cf@shopify.com","name":"James Reid-Smith"},"message":"This test was able to exercise the thread safety issue with flush 10 out of the 10 times I tried it locally","distinct":true,"url":"https://api.github.com/repos/samuelkadolph/buffered-logger/commits/8a8ca6b2db1927443b09a9ad4c8f7e4d0217fabf"},{"sha":"f69c75c602aff2bdd7638c67efb476b0f450a7d9","author":{"email":"d58937203e26cc30374db65976436805131024cf@shopify.com","name":"James Reid-Smith"},"message":"This test creates one of the following threading issues:\n\nBufferedLogger#test_0003_should handle multiple thread simutaneously calling start with a block:\nBufferedLogger::AlreadyStartedError: already started\n    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:29:in `start'\n    test/buffered_logger_test.rb:36:in `block (6 levels) in <main>'\n    test/buffered_logger_test.rb:35:in `times'\n    test/buffered_logger_test.rb:35:in `block (5 levels) in <main>'\n\nBufferedLogger#test_0003_should handle multiple thread simutaneously calling start with a block:\nBufferedLogger::NotStartedError: not started\n    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:18:in `end'\n    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:36:in `start'\n    test/buffered_logger_test.rb:36:in `block (6 levels) in <main>'\n    test/buffered_logger_test.rb:35:in `times'\n    test/buffered_logger_test.rb:35:in `block (5 levels) in <main>'\n\nBufferedLogger#test_0003_should handle multiple thread simutaneously calling start with a block:\nNoMethodError: undefined method `string' for nil:NilClass\n    /Users/james/Code/buffered-logger/lib/buffered_logger/log_device_proxy.rb:15:in `end'\n    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:19:in `end'\n    /Users/james/Code/buffered-logger/lib/buffered_logger.rb:36:in `start'\n    test/buffered_logger_test.rb:36:in `block (6 levels) in <main>'\n    test/buffered_logger_test.rb:35:in `times'\n    test/buffered_logger_test.rb:35:in `block (5 levels) in <main>'\n\nOr just segfaults Ruby MRI :(\n\n/Users/james/Code/buffered-logger/lib/buffered_logger/log_device_proxy.rb:15: [BUG] Segmentation fault at 0x007f8f44100000\nruby 2.1.7p400 (2015-08-18 revision 51632) [x86_64-darwin14.0]\n\n-- Crash Report log information --------------------------------------------\n   See Crash Report log file under the one of following:\n     * ~/Library/Logs/CrashReporter\n     * /Library/Logs/CrashReporter\n     * ~/Library/Logs/DiagnosticReports\n     * /Library/Logs/DiagnosticReports\n   for more details.\n\n-- Control frame information -----------------------------------------------\nc:0008 p:---- s:0025 e:000024 CFUNC  :delete\nc:0007 p:0015 s:0021 e:000019 METHOD /Users/james/Code/buffered-logger/lib/buffered_logger/log_device_proxy.rb:15\nc:0006 p:0029 s:0017 e:000016 METHOD /Users/james/Code/buffered-logger/lib/buffered_logger.rb:19\nc:0005 p:0048 s:0014 e:000012 METHOD /Users/james/Code/buffered-logger/lib/buffered_logger.rb:36\nc:0004 p:0009 s:0009 E:001e68 BLOCK  test/buffered_logger_test.rb:36 [FINISH]\nc:0003 p:---- s:0007 e:000006 CFUNC  :times\nc:0002 p:0010 s:0004 E:002128 BLOCK  test/buffered_logger_test.rb:35 [FINISH]\nc:0001 p:---- s:0002 e:000001 TOP    [FINISH]\n\ntest/buffered_logger_test.rb:35:in `block (5 levels) in <main>'\ntest/buffered_logger_test.rb:35:in `times'","distinct":true,"url":"https://api.github.com/repos/samuelkadolph/buffered-logger/commits/f69c75c602aff2bdd7638c67efb476b0f450a7d9"},{"sha":"a16f3c4e814b6012b1c50fdd86889becd0e0548e","author":{"email":"d58937203e26cc30374db65976436805131024cf@shopify.com","name":"James Reid-Smith"},"message":"Re-implemented using thread local variables instead of the buffer hash. This eliminates the race conditions we were having before when the threads used the same buffer hash. It also makes the sweeping we needed before unnecessary and let's the ruby GC handle it all.","distinct":true,"url":"https://api.github.com/repos/samuelkadolph/buffered-logger/commits/a16f3c4e814b6012b1c50fdd86889becd0e0548e"},{"sha":"89a1d5377ebda7a2af4ea2a3fbad6389ffee9c54","author":{"email":"d58937203e26cc30374db65976436805131024cf@shopify.com","name":"James Reid-Smith"},"message":"Was finding the new tests that brute force tested for thread safety issues too slow, so I've separated them from the other tests and added a new rake task (slow_test) to include them.","distinct":true,"url":"https://api.github.com/repos/samuelkadolph/buffered-logger/commits/89a1d5377ebda7a2af4ea2a3fbad6389ffee9c54"},{"sha":"47fb27cc4b0f09e0efafee6bf4bd9239cbeeaf2d","author":{"email":"d58937203e26cc30374db65976436805131024cf@shopify.com","name":"James Reid-Smith"},"message":"Forgot to remove `attr_accessor :sweep_frequency`. Also bumped the major version since it's a big overhaul of the implementation","distinct":true,"url":"https://api.github.com/repos/samuelkadolph/buffered-logger/commits/47fb27cc4b0f09e0efafee6bf4bd9239cbeeaf2d"},{"sha":"eb8bbc5d29cd6b0923b4376a73fc632bb6dd60d3","author":{"email":"d58937203e26cc30374db65976436805131024cf@shopify.com","name":"James Reid-Smith"},"message":"Act like sweep_frequency worked before.","distinct":true,"url":"https://api.github.com/repos/samuelkadolph/buffered-logger/commits/eb8bbc5d29cd6b0923b4376a73fc632bb6dd60d3"},{"sha":"a1c82bef00154f5b004842456523b4a44a0abcb2","author":{"email":"d58937203e26cc30374db65976436805131024cf@shopify.com","name":"James Reid-Smith"},"message":"Ruby 1.9.3 compatibility fix","distinct":true,"url":"https://api.github.com/repos/samuelkadolph/buffered-logger/commits/a1c82bef00154f5b004842456523b4a44a0abcb2"},{"sha":"6b9b2ccff08c5c1a8c7b1b81115635192191e75c","author":{"email":"d58937203e26cc30374db65976436805131024cf@shopify.com","name":"James Reid-Smith"},"message":"Removed deprecation warnings, required ruby version 2.0.0 or greater and renamed local variable","distinct":true,"url":"https://api.github.com/repos/samuelkadolph/buffered-logger/commits/6b9b2ccff08c5c1a8c7b1b81115635192191e75c"},{"sha":"e5ad4a3a2f1f7f3dc6c8d5ee3482f305bc7a2be9","author":{"email":"c16aab9fe3288df0fb8fc1d24990a300b6b8f299@kadolph.com","name":"Samuel Kadolph"},"message":"Merge pull request #13 from sunblaze/fix_2_thread_safe_issues\n\nFix thread safety issues with buffer hash","distinct":true,"url":"https://api.github.com/repos/samuelkadolph/buffered-logger/commits/e5ad4a3a2f1f7f3dc6c8d5ee3482f305bc7a2be9"}]}