Trac #9384: fix increasing capabilites number for eventlog.
authorAlexander Vershilov <alexander.vershilov@gmail.com>
Sun, 18 Jan 2015 10:58:57 +0000 (10:58 +0000)
committerSergei Trofimovich <siarheit@google.com>
Sun, 18 Jan 2015 12:17:38 +0000 (12:17 +0000)
Event log had inconcistent support for increacing capabilies
number, as header were not inserted in capability buffer. It
resulted in a ghc-events crash (see #9384). This commit
fixes this issue by inserting required header when number
of capabilies grows.

Reviewers: simonmar, Mikolaj, trofi, austin

Reviewed By: Mikolaj, trofi, austin

Subscribers: carter, thomie

Differential Revision: https://phabricator.haskell.org/D592

GHC Trac Issues: #9384

rts/eventlog/EventLog.c

index ef96f3c..f830ec1 100644 (file)
@@ -500,6 +500,15 @@ moreCapEventBufs (nat from, nat to)
     for (c = from; c < to; ++c) {
         initEventsBuf(&capEventBuf[c], EVENT_LOG_SIZE, c);
     }
+
+    // The from == 0 already covered in initEventLogging, so we are interested
+    // only in case when we are increasing capabilities number
+    if (from > 0) {
+        for (c = from; c < to; ++c) {
+           postBlockMarker(&capEventBuf[c]);
+        }
+    }
+
 }