Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-131291

heap-use-after-free in tst_qqmlenginedebugservice

    XMLWordPrintable

Details

    • 862e5ef0b (dev)

    Description

      https://codereview.qt-project.org/c/qt/qtdeclarative/+/604083/1#message-df8d683530a24ad9b3d763cd05f8c1db765b82f6

      https://testresults.qt.io/logs/qt/qtdeclarative/208f217ebb3e87f3ce77ad9ec3ac74f42ee9afb8/LinuxopenSUSE_15_5x86_64LinuxopenSUSE_15_5x86_64GCCqtci-linux-openSUSE-15.5-x86_64-52-17a988PinCores_Sccache_UseAddressSanitizer_UseConfigure_WarningsAreErrors/42ebac1484ab9d88e1259177af596333392594e2/test_1731634729/log.txt.gz

      agent:2024/11/15 02:31:31 build.go:404: PASS   : tst_QQmlEngineDebugService::asynchronousCreate()
      agent:2024/11/15 02:31:31 build.go:404: QWARN  : tst_QQmlEngineDebugService::invalidContexts() QML Debugger: Another client is already connected.
      agent:2024/11/15 02:31:31 build.go:404: QWARN  : tst_QQmlEngineDebugService::invalidContexts() QQmlDebugConnection: Did not get handshake answer in time
      agent:2024/11/15 02:31:31 build.go:404: FAIL!  : tst_QQmlEngineDebugService::invalidContexts() 'ok' returned FALSE. ()
      agent:2024/11/15 02:31:31 build.go:404:    Loc: [/home/qt/work/qt/qtdeclarative/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp(358)]
      agent:2024/11/15 02:31:31 build.go:404: =================================================================
      agent:2024/11/15 02:31:31 build.go:404: ==21094==ERROR: AddressSanitizer: heap-use-after-free on address 0x602000082090 at pc 0x7f37f73fefeb bp 0x7fff0ff706a0 sp 0x7fff0ff70698
      agent:2024/11/15 02:31:31 build.go:404: READ of size 8 at 0x602000082090 thread T0
      agent:2024/11/15 02:31:31 build.go:404:     #0 0x7f37f73fefea in QSignalSpy::verify(QObject const*, char const*) /home/qt/work/qt/qtbase/src/testlib/qsignalspy.cpp:201
      agent:2024/11/15 02:31:31 build.go:404:     #1 0x562f10f4f1c2 in QSignalSpy::QSignalSpy(QObject const*, char const*) /home/qt/work/install/include/QtTest/qsignalspy.h:31
      agent:2024/11/15 02:31:31 build.go:404:     #2 0x562f10f9b7c4 in tst_QQmlEngineDebugService::createObjectOnDestruction() /home/qt/work/qt/qtdeclarative/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp:1345
      agent:2024/11/15 02:31:31 build.go:404:     #3 0x562f10f9edc0 in tst_QQmlEngineDebugService::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/qt/work/qt/qtdeclarative_standalone_tests/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice_autogen/include/tst_qqmlenginedebugservice.moc:808
      agent:2024/11/15 02:31:31 build.go:404:     #4 0x7f37f60e9761 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2792
      agent:2024/11/15 02:31:31 build.go:404:     #5 0x7f37f60e757f in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2631
      agent:2024/11/15 02:31:31 build.go:404:     #6 0x7f37f7456b20 in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<void>(QObject*, Qt::ConnectionType, QTemplatedMetaMethodReturnArgument<void>) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:150
      agent:2024/11/15 02:31:31 build.go:404:     #7 0x7f37f7451275 in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<>(QObject*, Qt::ConnectionType) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:162
      agent:2024/11/15 02:31:31 build.go:404:     #8 0x7f37f7429ea8 in invokeTestMethodIfValid /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:442
      agent:2024/11/15 02:31:31 build.go:404:     #9 0x7f37f742f74a in QTest::TestMethods::invokeTestOnData(int) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1077
      agent:2024/11/15 02:31:31 build.go:404:     #10 0x7f37f7430c5a in operator() /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1395
      agent:2024/11/15 02:31:31 build.go:404:     #11 0x7f37f7444a43 in runWithWatchdog<QTest::TestMethods::invokeTest(int, QLatin1StringView, std::optional<QTest::WatchDog>&) const::<lambda()> > /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1278
      agent:2024/11/15 02:31:31 build.go:404:     #12 0x7f37f7431835 in QTest::TestMethods::invokeTest(int, QLatin1String, std::optional<QTest::WatchDog>&) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1394
      agent:2024/11/15 02:31:31 build.go:404:     #13 0x7f37f7434df2 in QTest::TestMethods::invokeTests(QObject*) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1737
      agent:2024/11/15 02:31:31 build.go:404:     #14 0x7f37f74367db in QTest::qRun() /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1976
      agent:2024/11/15 02:31:31 build.go:404:     #15 0x7f37f74354b4 in QTest::qExec(QObject*, int, char**) /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1850
      agent:2024/11/15 02:31:31 build.go:404:     #16 0x562f10f9d59c in main /home/qt/work/qt/qtdeclarative/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp:1411
      agent:2024/11/15 02:31:31 build.go:404:     #17 0x7f37f556324c in __libc_start_main (/lib64/libc.so.6+0x3524c)
      agent:2024/11/15 02:31:31 build.go:404:     #18 0x562f10f3cf39 in _start ../sysdeps/x86_64/start.S:120
      agent:2024/11/15 02:31:31 build.go:404: 0x602000082090 is located 0 bytes inside of 16-byte region [0x602000082090,0x6020000820a0)
      agent:2024/11/15 02:31:31 build.go:404: freed by thread T0 here:
      agent:2024/11/15 02:31:31 build.go:404:     #0 0x7f37ff70ce45 in operator delete(void*, unsigned long) (/usr/lib64/libasan.so.5+0x10ce45)
      agent:2024/11/15 02:31:31 build.go:404:     #1 0x562f1101098a in QQmlEngineDebugClient::~QQmlEngineDebugClient() /home/qt/work/qt/qtdeclarative/src/qmldebug/qqmlenginedebugclient_p.h:70
      agent:2024/11/15 02:31:31 build.go:404:     #2 0x7f37f61e2eab in QObjectPrivate::deleteChildren() /home/qt/work/qt/qtbase/src/corelib/kernel/qobject.cpp:2212
      agent:2024/11/15 02:31:31 build.go:404:     #3 0x7f37f61de8ee in QObject::~QObject() /home/qt/work/qt/qtbase/src/corelib/kernel/qobject.cpp:1139
      agent:2024/11/15 02:31:31 build.go:404:     #4 0x562f10fd5704 in QQmlDebugConnection::~QQmlDebugConnection() /home/qt/work/qt/qtdeclarative/src/qmldebug/qqmldebugconnection.cpp:223
      agent:2024/11/15 02:31:31 build.go:404:     #5 0x562f10fd5787 in QQmlDebugConnection::~QQmlDebugConnection() /home/qt/work/qt/qtdeclarative/src/qmldebug/qqmldebugconnection.cpp:229
      agent:2024/11/15 02:31:31 build.go:404:     #6 0x562f10fb5d5c in std::default_delete<QQmlDebugConnection>::operator()(QQmlDebugConnection*) const /usr/include/c++/9/bits/unique_ptr.h:81
      agent:2024/11/15 02:31:31 build.go:404:     #7 0x562f10fb8883 in std::unique_ptr<QQmlDebugConnection, std::default_delete<QQmlDebugConnection> >::reset(QQmlDebugConnection*) /usr/include/c++/9/bits/unique_ptr.h:402
      agent:2024/11/15 02:31:31 build.go:404:     #8 0x562f10fb11ef in std::unique_ptr<QQmlDebugConnection, std::default_delete<QQmlDebugConnection> >::operator=(std::unique_ptr<QQmlDebugConnection, std::default_delete<QQmlDebugConnection> >&&) (/home/qt/work/qt/qtdeclarative_standalone_tests/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice+0xaa1ef)
      agent:2024/11/15 02:31:31 build.go:404:     #9 0x562f10f766a3 in tst_QQmlEngineDebugService::initTestCase() /home/qt/work/qt/qtdeclarative/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp:354
      agent:2024/11/15 02:31:31 build.go:404:     #10 0x562f10f9a803 in operator() /home/qt/work/qt/qtdeclarative/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp:1337
      agent:2024/11/15 02:31:31 build.go:404:     #11 0x562f10f9f484 in ~QScopeGuard /home/qt/work/install/include/QtCore/qscopeguard.h:41
      agent:2024/11/15 02:31:31 build.go:404:     #12 0x562f10f9b2d9 in tst_QQmlEngineDebugService::invalidContexts() /home/qt/work/qt/qtdeclarative/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp:1340
      agent:2024/11/15 02:31:31 build.go:404:     #13 0x562f10f9edb2 in tst_QQmlEngineDebugService::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/qt/work/qt/qtdeclarative_standalone_tests/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice_autogen/include/tst_qqmlenginedebugservice.moc:807
      agent:2024/11/15 02:31:31 build.go:404:     #14 0x7f37f60e9761 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2792
      agent:2024/11/15 02:31:31 build.go:404:     #15 0x7f37f60e757f in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2631
      agent:2024/11/15 02:31:31 build.go:404:     #16 0x7f37f7456b20 in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<void>(QObject*, Qt::ConnectionType, QTemplatedMetaMethodReturnArgument<void>) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:150
      agent:2024/11/15 02:31:31 build.go:404:     #17 0x7f37f7451275 in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<>(QObject*, Qt::ConnectionType) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:162
      agent:2024/11/15 02:31:31 build.go:404:     #18 0x7f37f7429ea8 in invokeTestMethodIfValid /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:442
      agent:2024/11/15 02:31:31 build.go:404:     #19 0x7f37f742f74a in QTest::TestMethods::invokeTestOnData(int) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1077
      agent:2024/11/15 02:31:31 build.go:404:     #20 0x7f37f7430c5a in operator() /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1395
      agent:2024/11/15 02:31:31 build.go:404:     #21 0x7f37f7444a43 in runWithWatchdog<QTest::TestMethods::invokeTest(int, QLatin1StringView, std::optional<QTest::WatchDog>&) const::<lambda()> > /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1278
      agent:2024/11/15 02:31:31 build.go:404:     #22 0x7f37f7431835 in QTest::TestMethods::invokeTest(int, QLatin1String, std::optional<QTest::WatchDog>&) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1394
      agent:2024/11/15 02:31:31 build.go:404:     #23 0x7f37f7434df2 in QTest::TestMethods::invokeTests(QObject*) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1737
      agent:2024/11/15 02:31:31 build.go:404:     #24 0x7f37f74367db in QTest::qRun() /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1976
      agent:2024/11/15 02:31:31 build.go:404:     #25 0x7f37f74354b4 in QTest::qExec(QObject*, int, char**) /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1850
      agent:2024/11/15 02:31:31 build.go:404:     #26 0x562f10f9d59c in main /home/qt/work/qt/qtdeclarative/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp:1411
      agent:2024/11/15 02:31:31 build.go:404:     #27 0x7f37f556324c in __libc_start_main (/lib64/libc.so.6+0x3524c)
      agent:2024/11/15 02:31:31 build.go:404: previously allocated by thread T0 here:
      agent:2024/11/15 02:31:31 build.go:404:     #0 0x7f37ff70b9bf in operator new(unsigned long) (/usr/lib64/libasan.so.5+0x10b9bf)
      agent:2024/11/15 02:31:31 build.go:404:     #1 0x562f10f767e0 in tst_QQmlEngineDebugService::initTestCase() /home/qt/work/qt/qtdeclarative/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp:359
      agent:2024/11/15 02:31:31 build.go:404:     #2 0x562f10f9ebeb in tst_QQmlEngineDebugService::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/qt/work/qt/qtdeclarative_standalone_tests/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice_autogen/include/tst_qqmlenginedebugservice.moc:779
      agent:2024/11/15 02:31:31 build.go:404:     #3 0x7f37f60e9761 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2792
      agent:2024/11/15 02:31:31 build.go:404:     #4 0x7f37f60e757f in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2631
      agent:2024/11/15 02:31:31 build.go:404:     #5 0x7f37f7456b20 in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<void>(QObject*, Qt::ConnectionType, QTemplatedMetaMethodReturnArgument<void>) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:150
      agent:2024/11/15 02:31:31 build.go:404:     #6 0x7f37f7451275 in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<>(QObject*, Qt::ConnectionType) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:162
      agent:2024/11/15 02:31:31 build.go:404:     #7 0x7f37f7429ea8 in invokeTestMethodIfValid /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:442
      agent:2024/11/15 02:31:31 build.go:404:     #8 0x7f37f743477f in operator() /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1723
      agent:2024/11/15 02:31:31 build.go:404:     #9 0x7f37f7444b19 in runWithWatchdog<QTest::TestMethods::invokeTests(QObject*) const::<lambda()> > /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1278
      agent:2024/11/15 02:31:31 build.go:404:     #10 0x7f37f7434b80 in QTest::TestMethods::invokeTests(QObject*) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1722
      agent:2024/11/15 02:31:31 build.go:404:     #11 0x7f37f74367db in QTest::qRun() /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1976
      agent:2024/11/15 02:31:31 build.go:404:     #12 0x7f37f74354b4 in QTest::qExec(QObject*, int, char**) /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1850
      agent:2024/11/15 02:31:31 build.go:404:     #13 0x562f10f9d59c in main /home/qt/work/qt/qtdeclarative/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice.cpp:1411
      agent:2024/11/15 02:31:31 build.go:404:     #14 0x7f37f556324c in __libc_start_main (/lib64/libc.so.6+0x3524c)
      agent:2024/11/15 02:31:31 build.go:404: SUMMARY: AddressSanitizer: heap-use-after-free /home/qt/work/qt/qtbase/src/testlib/qsignalspy.cpp:201 in QSignalSpy::verify(QObject const*, char const*)
      agent:2024/11/15 02:31:31 build.go:404: Shadow bytes around the buggy address:
      agent:2024/11/15 02:31:31 build.go:404:   0x0c04800083c0: fa fa fd fa fa fa fd fd fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404:   0x0c04800083d0: fa fa fd fd fa fa 01 fa fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404:   0x0c04800083e0: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404:   0x0c04800083f0: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404:   0x0c0480008400: fa fa fd fd fa fa 00 00 fa fa 00 00 fa fa fd fa
      agent:2024/11/15 02:31:31 build.go:404: =>0x0c0480008410: fa fa[fd]fd fa fa fd fd fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404:   0x0c0480008420: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404:   0x0c0480008430: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404:   0x0c0480008440: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404:   0x0c0480008450: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404:   0x0c0480008460: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fd
      agent:2024/11/15 02:31:31 build.go:404: Shadow byte legend (one shadow byte represents 8 application bytes):
      agent:2024/11/15 02:31:31 build.go:404:   Addressable:           00
      agent:2024/11/15 02:31:31 build.go:404:   Partially addressable: 01 02 03 04 05 06 07 
      agent:2024/11/15 02:31:31 build.go:404:   Heap left redzone:       fa
      agent:2024/11/15 02:31:31 build.go:404:   Freed heap region:       fd
      agent:2024/11/15 02:31:31 build.go:404:   Stack left redzone:      f1
      agent:2024/11/15 02:31:31 build.go:404:   Stack mid redzone:       f2
      agent:2024/11/15 02:31:31 build.go:404:   Stack right redzone:     f3
      agent:2024/11/15 02:31:31 build.go:404:   Stack after return:      f5
      agent:2024/11/15 02:31:31 build.go:404:   Stack use after scope:   f8
      agent:2024/11/15 02:31:31 build.go:404:   Global redzone:          f9
      agent:2024/11/15 02:31:31 build.go:404:   Global init order:       f6
      agent:2024/11/15 02:31:31 build.go:404:   Poisoned by user:        f7
      agent:2024/11/15 02:31:31 build.go:404:   Container overflow:      fc
      agent:2024/11/15 02:31:31 build.go:404:   Array cookie:            ac
      agent:2024/11/15 02:31:31 build.go:404:   Intra object redzone:    bb
      agent:2024/11/15 02:31:31 build.go:404:   ASan internal:           fe
      agent:2024/11/15 02:31:31 build.go:404:   Left alloca redzone:     ca
      agent:2024/11/15 02:31:31 build.go:404:   Right alloca redzone:    cb
      agent:2024/11/15 02:31:31 build.go:404:   Shadow gap:              cc
      agent:2024/11/15 02:31:31 build.go:404: ==21094==ABORTING
      agent:2024/11/15 02:31:31 build.go:404: sanitizer-testrunner.py     INFO: Test exit code was: 1
      agent:2024/11/15 02:31:31 build.go:404: sanitizer-testrunner.py    ERROR: ASAN issues detected
      agent:2024/11/15 02:31:31 build.go:404: CMake Error at tst_qqmlenginedebugserviceWrapperDebug.cmake:18 (message):
      agent:2024/11/15 02:31:31 build.go:404:   /home/qt/work/install/libexec/sanitizer-testrunner.py
      agent:2024/11/15 02:31:31 build.go:404:   /home/qt/work/qt/qtdeclarative_standalone_tests/tests/auto/qml/debugger/qqmlenginedebugservice/tst_qqmlenginedebugservice
      agent:2024/11/15 02:31:31 build.go:404:   execution failed with exit code 1.
      agent:2024/11/15 02:31:31 build.go:404: 98% tests passed, 1 tests failed out of 62
      agent:2024/11/15 02:31:31 build.go:404: Total Test time (real) = 526.61 sec
      agent:2024/11/15 02:31:31 build.go:404: The following tests FAILED:
      agent:2024/11/15 02:31:31 build.go:404: 	 62 - tst_qqmlenginedebugservice (Failed)
      agent:2024/11/15 02:31:31 build.go:404: Errors while running CTest
      agent:2024/11/15 02:31:31 build.go:455: Process finished with error: exit status 8
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            ulherman Ulf Hermann
            mitch_curtis Mitch Curtis
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes