PhantomJS crashes when i use a NodeJS Phantom wrapper. Stack trace included.

When i set a onAlert or onConsoleMessage and the page triggers one of these it crashes.
The Node library is http://npmjs.org/package/phantom which may be causing it a problem but I'm surprised if it was killing Phantom somehow.
How this can help fix an issue. Thanks.
Currently running PhantomJS 1.9.7
=== Stack trace:
Operating system: Linux
0.0.0 Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3 x86_64
CPU: amd64
family 6 model 54 stepping 1
2 CPUs
Crash reason:  SIGSEGV
Crash address: 0xffffffffffffffc8
Thread 0 (crashed)
0  0x7f3da3848691
rbx = 0x00007f3da329a4a0   r12 = 0x0000000000000200
r13 = 0x00007f3da329a4a0   r14 = 0xffff000000000000
r15 = 0xffff000000000002   rip = 0x00007f3da3848691
rsp = 0x00007fff2aedbf70   rbp = 0x00007fff2aedc010
Found by: given as instruction pointer in context
1  libc-2.13.so + 0x7bbff
rip = 0x00007f3de5343c00   rsp = 0x00007fff2aedbfb0
rbp = 0x00007fff2aedc010
Found by: stack scanning
2  phantomjs!JSC::Interpreter::executeCall [JITCode.h : 77 + 0x16]
rip = 0x0000000000f2e376   rsp = 0x00007fff2aedc020
Found by: stack scanning
3  phantomjs!JSC::call [CallData.cpp : 38 + 0x21]
rbx = 0x00007fff2aedc250   r12 = 0x00007f3d9b6d15e0
r13 = 0x00007f3d9b5be650   r14 = 0x00007f3da321c150
r15 = 0x00007f3de69ce8f0   rip = 0x0000000000f7291d
rsp = 0x00007fff2aedc0f0   rbp = 0x00007f3da003c2d0
Found by: call frame info
4  phantomjs!JSC::Bindings::QtConnectionObject::execute [qt_runtime.cpp : 1863 + 0x17]
rbx = 0x00007fff2aedc250   r12 = 0x00007f3d9b6d15e0
r13 = 0x00007f3d9b5be650   r14 = 0x00007f3da321c150
r15 = 0x00007f3de69ce8f0   rip = 0x0000000000542ece
rsp = 0x00007fff2aedc100   rbp = 0x00007f3da003c2d0
Found by: call frame info
5  phantomjs!JSC::Bindings::QtConnectionObject::qt_metacall [qt_runtime.cpp : 1807 + 0xa]
rbx = 0x0000000000000000   r12 = 0x00007fff2aedc4d0
r13 = 0x00007f3d9c083d50   r14 = 0x0000000000000004
r15 = 0x00007f3d9c062040   rip = 0x000000000054390c
rsp = 0x00007fff2aedc380   rbp = 0x0000000000000000
Found by: call frame info
6  phantomjs!QMetaObject::activate [qobject.cpp : 3555 + 0x1f]
rbx = 0x0000000000000004   r12 = 0x0000000000000001
r13 = 0x0000000000000000   r14 = 0x0000000000000004
r15 = 0x00007f3d9c062040   rip = 0x0000000001cf7160
rsp = 0x00007fff2aedc3b0   rbp = 0x00007f3d9c083d50
Found by: call frame info
7  phantomjs!WebPage::javaScriptConsoleMessageSent [moc_webpage.cpp : 442 + 0x4]
rbx = 0x0000000000000002   r12 = 0x0000000000000001
r13 = 0x00007fff2aedc510   r14 = 0x00007fff2aedc520
r15 = 0x0000000004784f20   rip = 0x000000000046a103
rsp = 0x00007fff2aedc4d0   rbp = 0x0000000000000000
Found by: call frame info
8  phantomjs!WebCore::ChromeClientQt::addMessageToConsole [ChromeClientQt.cpp : 309 + 0x16]
rbx = 0x0000000000000002   r12 = 0x0000000000000001
r13 = 0x00007fff2aedc510   r14 = 0x00007fff2aedc520
r15 = 0x0000000004784f20   rip = 0x00000000004b3009
rsp = 0x00007fff2aedc4f0   rbp = 0x0000000000000000
Found by: call frame info
9  phantomjs!WebCore::Console::addMessage [Console.cpp : 191 + 0x25]
rbx = 0x00007f3da3073400   r12 = 0x0000000000000001
r13 = 0x0000000000000001   r14 = 0x00007f3da289d168
r15 = 0x00007fff2aedc5e0   rip = 0x00000000008a43ef
rsp = 0x00007fff2aedc590   rbp = 0x00007fff2aedc600
Found by: call frame info
10  phantomjs!WebCore::Console::log [Console.cpp : 214 + 0x4]
rbx = 0x00007f3da329a1d8   r12 = 0x00007f3da289d168
r13 = 0x0000000000000001   r14 = 0x00007f3da00d4a20
r15 = 0x0000000000000001   rip = 0x00000000008a51ca
rsp = 0x00007fff2aedc680   rbp = 0x00007f3da018ccc0
Found by: call frame info
11  phantomjs!WebCore::jsConsolePrototypeFunctionLog [JSConsole.cpp : 203 + 0x11]
rbx = 0x00007f3da329a1d8   r12 = 0x00007f3da289d168
r13 = 0x0000000000000001   r14 = 0x00007f3da00d4a20
r15 = 0x0000000000000001   rip = 0x00000000013f7394
rsp = 0x00007fff2aedc6c0   rbp = 0x00007f3da018ccc0
Found by: call frame info
12  0x7f3da369a1e7
rbx = 0x00007f3da38fafe1   r12 = 0x00000000000001e7
r13 = 0x00007f3da329a178   r14 = 0xffff000000000000
r15 = 0xffff000000000002   rip = 0x00007f3da369a1e8
rsp = 0x00007fff2aedc740   rbp = 0x00007fff2aedc7f0
Found by: call frame info
13  phantomjs!JSC::Interpreter::executeCall [JITCode.h : 77 + 0x16]
rip = 0x0000000000f2e376   rsp = 0x00007fff2aedc800
Found by: stack scanning
14  phantomjs!JSC::call [CallData.cpp : 38 + 0x21]
rbx = 0x00007f3de69e1850   r12 = 0x0000000000000002
r13 = 0x00007f3da25ef3f0   r14 = 0x00007f3da2652510
r15 = 0x00007f3da321c8d0   rip = 0x0000000000f7291d
rsp = 0x00007fff2aedc8d0   rbp = 0x00007f3d9b78c8d0
Found by: call frame info
15  phantomjs!WebCore::JSEventListener::handleEvent [JSMainThreadExecState.h : 48 + 0xc]
rbx = 0x00007f3de69e1850   r12 = 0x0000000000000002
r13 = 0x00007f3da25ef3f0   r14 = 0x00007f3da2652510
r15 = 0x00007f3da321c8d0   rip = 0x00000000010041c3
rsp = 0x00007fff2aedc8e0   rbp = 0x00007f3d9b78c8d0
Found by: call frame info
16  phantomjs!WebCore::EventTarget::fireEventListeners [EventTarget.cpp : 360 + 0x1b]
rbx = 0x00007f3da25ef3f0   r12 = 0x00007f3da2652510
r13 = 0x00007f3da274adc0   r14 = 0x00007f3da274aea8
r15 = 0x00007f3da2842e10   rip = 0x000000000063c3e1
rsp = 0x00007fff2aedcb50   rbp = 0x0000000001003a30
Found by: call frame info
17  phantomjs!WebCore::EventTarget::fireEventListeners [EventTarget.cpp : 329 + 0x11]
rbx = 0x00007f3da274adc0   r12 = 0x0000000002a9bb08
r13 = 0x00007f3da274adc0   r14 = 0x0000000000000001
r15 = 0x0000000002a9c408   rip = 0x000000000063d563
rsp = 0x00007fff2aedcbd0   rbp = 0x00007f3da2652510
Found by: call frame info
18  phantomjs!WebCore::DOMWindow::dispatchEvent [DOMWindow.cpp : 1591 + 0xa]
rbx = 0x00007fff2aedcc70   r12 = 0x0000000002a9bb08
r13 = 0x00007f3da274adc0   r14 = 0x0000000000000001
r15 = 0x0000000002a9c408   rip = 0x00000000008b7de8
rsp = 0x00007fff2aedcbf0   rbp = 0x00007f3da2652510
Found by: call frame info
19  phantomjs!WebCore::DOMWindow::dispatchTimedEvent [DOMWindow.cpp : 1603 + 0x4]
rbx = 0x00007f3da2bd4f08   r12 = 0x00007fff2aedcd00
r13 = 0x00007f3da274adc0   r14 = 0x00007f3da2bd4f10
r15 = 0x0000000002a9c408   rip = 0x00000000008b7f6c
rsp = 0x00007fff2aedcc60   rbp = 0x00007f3d9b78c800
Found by: call frame info
20  phantomjs!WebCore::DOMWindow::dispatchLoadEvent [DOMWindow.cpp : 1566 + 0x12]
rbx = 0x00007f3da2bd4800   r12 = 0x00007f3da2bd4f10
r13 = 0x00007f3da2652510   r14 = 0x00007f3da274adc0
r15 = 0x0000000002a9c408   rip = 0x00000000008c038a
rsp = 0x00007fff2aedccb0   rbp = 0x00007f3da2bd4f08
Found by: call frame info
21  phantomjs!WebCore::Document::implicitClose [Document.cpp : 3492 + 0x7]
rbx = 0x00007f3d9b78c800   r12 = 0x00007f3da297f900
r13 = 0x00007f3da2839b40   r14 = 0x0000000000000001
r15 = 0x0000000000000001   rip = 0x000000000060a106
rsp = 0x00007fff2aedcd80   rbp = 0x00007f3da297f900
Found by: call frame info
22  phantomjs!WebCore::FrameLoader::checkCompleted [FrameLoader.cpp : 974 + 0xb]
rbx = 0x00007f3da297f978   r12 = 0x0000000000000001
r13 = 0x00007f3da2839b40   r14 = 0x0000000000000001
r15 = 0x0000000000000001   rip = 0x000000000085d789
rsp = 0x00007fff2aedcdb0   rbp = 0x00007f3da297f900
Found by: call frame info
23  phantomjs!WebCore::CachedResourceLoader::loadDone [CachedResourceLoader.cpp : 553 + 0x8]
rbx = 0x00007f3da25f24e0   r12 = 0x00007f3da2839b78
r13 = 0x00007f3da2839b40   r14 = 0x0000000000000001
r15 = 0x0000000000000001   rip = 0x000000000083ec1c
rsp = 0x00007fff2aedcdd0   rbp = 0x00007f3da29b6158
Found by: call frame info
24  phantomjs!WebCore::CachedResourceRequest::didFinishLoading [CachedResourceRequest.cpp : 170 + 0x7]
rbx = 0x00007f3da25f24e0   r12 = 0x00007f3d9b78c800
r13 = 0x00007f3da019ec00   r14 = 0x000000000082df60
r15 = 0x0000000000000001   rip = 0x000000000113cca5
rsp = 0x00007fff2aedce00   rbp = 0x0000000000000000
Found by: call frame info
25  phantomjs!WebCore::SubresourceLoader::didFinishLoading [SubresourceLoader.cpp : 196 + 0x13]
rbx = 0x00007f3da019ec00   r12 = 0x0000000000000000
r13 = 0x00007f3da019ec00   r14 = 0x00007f3d9c17bba0
r15 = 0x00007f3d9c17bb90   rip = 0x0000000000890412
rsp = 0x00007fff2aedce50   rbp = 0x0000000000000001
Found by: call frame info
26  phantomjs!WebCore::QNetworkReplyHandler::finish [QNetworkReplyHandler.cpp : 462 + 0x11]
rbx = 0x00007f3d9c17bb90   r12 = 0x0000000000000001
r13 = 0x00007f3da019ec00   r14 = 0x00007f3d9c17bba0
r15 = 0x00007f3d9c17bb90   rip = 0x0000000000adf872
rsp = 0x00007fff2aedce80   rbp = 0x00007f3d9c0843e0
Found by: call frame info
27  phantomjs!WebCore::QNetworkReplyHandlerCallQueue::flush [QNetworkReplyHandler.cpp : 198 + 0x28]
rbx = 0x00007f3d9c084410   r12 = 0x0000000000000001
r13 = 0x0000000000add5c0   r14 = 0x00007f3d9c17bbc8
r15 = 0x00007f3d9c17bb90   rip = 0x0000000000adaa81
rsp = 0x00007fff2aedd010   rbp = 0x00007f3d9c0843e0
Found by: call frame info
28  phantomjs!QMetaObject::activate [qobject.cpp : 3539 + 0x1e]
rbx = 0x0000000000000004   r12 = 0x0000000000000001
r13 = 0x0000000000add5c0   r14 = 0x0000000000000001
r15 = 0x00007f3d9c1fcb20   rip = 0x0000000001cf6ef8
rsp = 0x00007fff2aedd060   rbp = 0x00007f3d9c179210
Found by: call frame info
29  phantomjs!QNetworkReplyImplPrivate::finished [qnetworkreplyimpl.cpp : 795 + 0x7]
rbx = 0x0000000000000001   r12 = 0x0000000000000001
r13 = 0x00007f3d9c176340   r14 = 0x00007fff2aedd1f0
r15 = 0x0000000000000001   rip = 0x0000000001b32395
rsp = 0x00007fff2aedd180   rbp = 0x00007f3d9c1ede80
Found by: call frame info
30  phantomjs!QNetworkAccessHttpBackend::qt_static_metacall [moc_qnetworkaccesshttpbackend_p.cpp : 96 + 0x4]
rbx = 0x0000000004766f00   r12 = 0x0000000004b497e0
r13 = 0x0000000004536ab0   r14 = 0x0000000004534208
r15 = 0x0000000004b497e0   rip = 0x0000000001ba6fc5
rsp = 0x00007fff2aedd250   rbp = 0x00007f3d9c1ee130
Found by: call frame info
31  phantomjs!QObject::event [qobject.cpp : 1191 + 0x8]
rbx = 0x00007f3d9c1ee130   r12 = 0x0000000004b497e0
r13 = 0x0000000004536ab0   r14 = 0x0000000004534208
r15 = 0x0000000004b497e0   rip = 0x0000000001cefc28
rsp = 0x00007fff2aedd2e0   rbp = 0x0000000000000000
Found by: call frame info
32  phantomjs!QApplicationPrivate::notify_helper [qapplication.cpp : 4562 + 0xc]
rbx = 0x00007fff2aeddc40   r12 = 0x0000000004b497e0
r13 = 0x0000000004536ab0   r14 = 0x0000000004534208
r15 = 0x0000000004b497e0   rip = 0x00000000015decaf
rsp = 0x00007fff2aedd480   rbp = 0x00007f3d9c1ee130
Found by: call frame info
33  phantomjs!QApplication::notify [qapplication.cpp : 4423 + 0x17]
rbx = 0x00007fff2aeddc40   r12 = 0x0000000004b497e0
r13 = 0x00007fff2aeddc40   r14 = 0x0000000004534208
r15 = 0x0000000004b497e0   rip = 0x00000000015e793b
rsp = 0x00007fff2aedd4b0   rbp = 0x00007f3d9c1ee130
Found by: call frame info
34  phantomjs!QCoreApplication::notifyInternal [qcoreapplication.cpp : 946 + 0x2]
rbx = 0x00000000045341c0   r12 = 0x0000000004b497e0
r13 = 0x00007fff2aeddc40   r14 = 0x0000000004534208
r15 = 0x00000000045341fc   rip = 0x0000000001cde3d4
rsp = 0x00007fff2aedd980   rbp = 0x00007f3d9c1ee130
Found by: call frame info
35  phantomjs!QCoreApplicationPrivate::sendPostedEvents [qcoreapplication.h : 231 + 0x1f]
rbx = 0x0000000004b497e0   r12 = 0x00000000045341c0
r13 = 0x00007f3d9c1ee130   r14 = 0x0000000004534208
r15 = 0x00000000045341fc   rip = 0x0000000001cdf334
rsp = 0x00007fff2aedd9d0   rbp = 0x0000000004b49840
Found by: call frame info
36  phantomjs!QEventDispatcherQPA::processEvents [qcoreapplication.h : 236 + 0xb]
rbx = 0x0000000004731e90   r12 = 0x0000000000000000
r13 = 0x0000000004533560   r14 = 0x00007fff2aeddad0
r15 = 0x00000000045342d8   rip = 0x000000000163a623
rsp = 0x00007fff2aedda90   rbp = 0x0000000004538030
Found by: call frame info
37  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
rbx = 0x0000000004731e90   r12 = 0x00007fff2aeddb60
r13 = 0x00007fff2aeddb70   r14 = 0x0000000004534230
r15 = 0x00000000045342d8   rip = 0x0000000001cdd4b5
rsp = 0x00007fff2aeddad0   rbp = 0x00007fff2aeddb10
Found by: call frame info
38  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
rbx = 0x0000000004731e90   r12 = 0x00007fff2aeddb60
r13 = 0x00007fff2aeddb70   r14 = 0x0000000004534230
r15 = 0x00000000045342d8   rip = 0x0000000001cdd918
rsp = 0x00007fff2aeddb00   rbp = 0x00007fff2aeddc40
Found by: call frame info
39  phantomjs!QCoreApplication::exec [qcoreapplication.cpp : 1218 + 0x4]
rbx = 0x00000000045341c0   r12 = 0x00007fff2aeddc40
r13 = 0x00007fff2aedddf8   r14 = 0x00007fff2aeddbb0
r15 = 0x0000000000000000   rip = 0x0000000001cdf7cb
rsp = 0x00007fff2aeddb60   rbp = 0x00000000045341c0
Found by: call frame info
40  phantomjs!main [main.cpp : 121 + 0x4]
rbx = 0x0000000004587f20   r12 = 0x00007fff2aeddc40
r13 = 0x00007fff2aedddf8   r14 = 0x00007fff2aeddbb0
r15 = 0x0000000000000000   rip = 0x0000000000427cb2
rsp = 0x00007fff2aeddba0   rbp = 0x00007fff2aedddd8
Found by: call frame info
41  libc-2.13.so + 0x1eeac
rbx = 0x0000000000000000   r12 = 0x0000000000407cc0
r13 = 0x00007fff2aedddd0   r14 = 0x0000000000000000
r15 = 0x0000000000000000   rip = 0x00007f3de52e6ead
rsp = 0x00007fff2aeddd00   rbp = 0x0000000000000000
Found by: call frame info
42  phantomjs + 0x27a5f
rip = 0x0000000000427a60   rsp = 0x00007fff2aeddd20
Found by: stack scanning
Thread 1
0  libc-2.13.so + 0xac60d
rbx = 0x00007f3de469ad80   r12 = 0x00000000ffffffff
r13 = 0x00007f3da01ef000   r14 = 0x0000000002a80960
r15 = 0x0000000002a80930   rip = 0x00007f3de537460d
rsp = 0x00007f3de469ac50   rbp = 0x00007f3de469ad00
Found by: given as instruction pointer in context
1  libc-2.13.so + 0xac47f
rip = 0x00007f3de5374480   rsp = 0x00007f3de469ac60
rbp = 0x00007f3de469ad00
Found by: stack scanning
2  phantomjs + 0x18b5c6f
rip = 0x0000000001cb5c70   rsp = 0x00007f3de469ac68
rbp = 0x00007f3de469ad00
Found by: stack scanning
3  ld-2.13.so + 0x9109
rip = 0x00007f3de68f910a   rsp = 0x00007f3de469ac80
rbp = 0x00007f3de469ad00
Found by: stack scanning
4  ld-2.13.so + 0x9812
rip = 0x00007f3de68f9813   rsp = 0x00007f3de469acc0
rbp = 0x00007f3de469ad00
Found by: stack scanning
5  phantomjs!WebPage::renderPdf [qstring.h : 880 + 0xc]
rip = 0x00000000004173d8   rsp = 0x00007f3de469ace0
rbp = 0x00007f3de469ad00
Found by: stack scanning
Thread 2
0  libc-2.13.so + 0xd5be3
rbx = 0x0000000000000000   r12 = 0x00007f3de3e99da0
r13 = 0x0000000000000008   r14 = 0x000000000458fb28
r15 = 0x000000000458fdc0   rip = 0x00007f3de539dbe3
rsp = 0x00007f3de3e99b70   rbp = 0x000000000458f970
Found by: given as instruction pointer in context
1  phantomjs!qt_safe_select [qcore_unix.cpp : 83 + 0x15]
rip = 0x0000000001d06327   rsp = 0x00007f3de3e99b80
Found by: stack scanning
2  phantomjs!QEventDispatcherUNIXPrivate::doSelect [qeventdispatcher_unix.cpp : 223 + 0xd]
rbx = 0x00000000045898d0   r12 = 0x00007f3de3e99da0
r13 = 0x000000000458f970   r14 = 0x0000000000000000
r15 = 0x000000000458fdc0   rip = 0x0000000001d075e7
rsp = 0x00007f3de3e99c10   rbp = 0x000000000458f970
Found by: call frame info
3  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 937 + 0x4]
rbx = 0x00000000045898d0   r12 = 0x00007f3de3e99da0
r13 = 0x00000000046e6d30   r14 = 0x0000000000000001
r15 = 0x00000000045879c8   rip = 0x0000000001d08092
rsp = 0x00007f3de3e99d50   rbp = 0x000000000458f970
Found by: call frame info
4  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
rbx = 0x00000000045898d0   r12 = 0x00007f3de3e99e30
r13 = 0x00007f3de3e99e40   r14 = 0x0000000004534230
r15 = 0x00000000045879c8   rip = 0x0000000001cdd4b5
rsp = 0x00007f3de3e99da0   rbp = 0x00007f3de3e99de0
Found by: call frame info
5  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
rbx = 0x00000000045898d0   r12 = 0x00007f3de3e99e30
r13 = 0x00007f3de3e99e40   r14 = 0x0000000004534230
r15 = 0x00000000045879c8   rip = 0x0000000001cdd918
rsp = 0x00007f3de3e99dd0   rbp = 0x00007fff2aeddc40
Found by: call frame info
6  phantomjs!QThread::exec [qthread.cpp : 542 + 0xc]
rbx = 0x0000000004587940   r12 = 0x00000000045879c8
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x0000000001bdfdf6
rsp = 0x00007f3de3e99e30   rbp = 0x00000000045879c8
Found by: call frame info
7  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
rbx = 0x00000000045879c8   r12 = 0x0000000004587a10
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
rsp = 0x00007f3de3e99e80   rbp = 0x00000000046af810
Found by: call frame info
8  libpthread-2.13.so + 0x6b4f
rbx = 0x0000000000000000   r12 = 0x00007fff2aedd120
r13 = 0x00007f3de3e9a9c0   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x00007f3de5df8b50
rsp = 0x00007f3de3e99ed0   rbp = 0x0000000000000000
Found by: call frame info
Thread 3
0  libc-2.13.so + 0xd5be3
rbx = 0x00007f3da2438d50   r12 = 0x00000000001e4e5c
r13 = 0x000000000000000e   r14 = 0x0000000004785648
r15 = 0x00000000047858e0   rip = 0x00007f3de539dbe3
rsp = 0x00007f3da2438b70   rbp = 0x000000000002bc6c
Found by: given as instruction pointer in context
1  phantomjs!qt_safe_select [qcore_unix.cpp : 93 + 0x16]
rip = 0x0000000001d06228   rsp = 0x00007f3da2438b80
Found by: stack scanning
2  phantomjs!QEventDispatcherUNIXPrivate::doSelect [qeventdispatcher_unix.cpp : 223 + 0xd]
rbx = 0x000000000473d150   r12 = 0x00007f3da2438da0
r13 = 0x0000000004785490   r14 = 0x00007f3da2438d50
r15 = 0x00000000047858e0   rip = 0x0000000001d075e7
rsp = 0x00007f3da2438c10   rbp = 0x0000000004785490
Found by: call frame info
3  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 937 + 0x4]
rbx = 0x000000000473d150   r12 = 0x00007f3da2438da0
r13 = 0x0000000004742c30   r14 = 0x0000000000000001
r15 = 0x00000000047851c8   rip = 0x0000000001d08092
rsp = 0x00007f3da2438d50   rbp = 0x0000000004785490
Found by: call frame info
4  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
rbx = 0x000000000473d150   r12 = 0x00007f3da2438e30
r13 = 0x00007f3da2438e40   r14 = 0x0000000004534230
r15 = 0x00000000047851c8   rip = 0x0000000001cdd4b5
rsp = 0x00007f3da2438da0   rbp = 0x00007f3da2438de0
Found by: call frame info
5  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
rbx = 0x000000000473d150   r12 = 0x00007f3da2438e30
r13 = 0x00007f3da2438e40   r14 = 0x0000000004534230
r15 = 0x00000000047851c8   rip = 0x0000000001cdd918
rsp = 0x00007f3da2438dd0   rbp = 0x00007fff2aeddc40
Found by: call frame info
6  phantomjs!QThread::exec [qthread.cpp : 542 + 0xc]
rbx = 0x0000000004785140   r12 = 0x00000000047851c8
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x0000000001bdfdf6
rsp = 0x00007f3da2438e30   rbp = 0x00000000047851c8
Found by: call frame info
7  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
rbx = 0x00000000047851c8   r12 = 0x0000000004785280
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
rsp = 0x00007f3da2438e80   rbp = 0x0000000004740c30
Found by: call frame info
8  libpthread-2.13.so + 0x6b4f
rbx = 0x0000000000000000   r12 = 0x00007fff2aedaf50
r13 = 0x00007f3da24399c0   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x00007f3de5df8b50
rsp = 0x00007f3da2438ed0   rbp = 0x0000000000000000
Found by: call frame info
Thread 4
0  libpthread-2.13.so + 0xb64b
rbx = 0x000000000478a200   r12 = 0x000000000000000b
r13 = 0x00007f3da1c37de0   r14 = 0xffffffffffffff92
r15 = 0x0000000000000000   rip = 0x00007f3de5dfd64b
rsp = 0x00007f3da1c37d60   rbp = 0x000000000478a5a0
Found by: given as instruction pointer in context
1  linux-gate.so + 0xa1a
rip = 0x00007fff2afffa1b   rsp = 0x00007f3da1c37d90
Found by: stack scanning
2  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
rip = 0x0000000001be39d7   rsp = 0x00007f3da1c37dc0
Found by: stack scanning
3  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
rbx = 0x000000000478a120   r12 = 0x000000000478a1a9
r13 = 0x0000000000000002   r14 = 0x00007f3d9c073b50
r15 = 0x0000000000000003   rip = 0x0000000001bd783d
rsp = 0x00007f3da1c37e40   rbp = 0x000000000478a5a0
Found by: call frame info
4  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
rbx = 0x000000000478aa80   r12 = 0x000000000478a740
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
rsp = 0x00007f3da1c37e80   rbp = 0x000000000478a5a0
Found by: call frame info
5  libpthread-2.13.so + 0x6b4f
rbx = 0x0000000000000000   r12 = 0x00007f3da24375b0
r13 = 0x00007f3da1c389c0   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x00007f3de5df8b50
rsp = 0x00007f3da1c37ed0   rbp = 0x0000000000000000
Found by: call frame info
Thread 5
0  libc-2.13.so + 0xd5be3
rbx = 0x00007f3da1014d50   r12 = 0x00000000001e4e7e
r13 = 0x000000000000001d   r14 = 0x00000000047a1398
r15 = 0x00000000047a1630   rip = 0x00007f3de539dbe3
rsp = 0x00007f3da1014b70   rbp = 0x0000000000005215
Found by: given as instruction pointer in context
1  phantomjs!qt_safe_select [qcore_unix.cpp : 93 + 0x16]
rip = 0x0000000001d06228   rsp = 0x00007f3da1014b80
Found by: stack scanning
2  phantomjs!QEventDispatcherUNIXPrivate::doSelect [qeventdispatcher_unix.cpp : 223 + 0xd]
rbx = 0x00000000047a1bb0   r12 = 0x00007f3da1014da0
r13 = 0x00000000047a11e0   r14 = 0x00007f3da1014d50
r15 = 0x00000000047a1630   rip = 0x0000000001d075e7
rsp = 0x00007f3da1014c10   rbp = 0x00000000047a11e0
Found by: call frame info
3  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 937 + 0x4]
rbx = 0x00000000047a1bb0   r12 = 0x00007f3da1014da0
r13 = 0x0000000004799b50   r14 = 0x0000000000000001
r15 = 0x00000000047a0f78   rip = 0x0000000001d08092
rsp = 0x00007f3da1014d50   rbp = 0x00000000047a11e0
Found by: call frame info
4  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
rbx = 0x00000000047a1bb0   r12 = 0x00007f3da1014e30
r13 = 0x00007f3da1014e40   r14 = 0x0000000004534230
r15 = 0x00000000047a0f78   rip = 0x0000000001cdd4b5
rsp = 0x00007f3da1014da0   rbp = 0x00007f3da1014de0
Found by: call frame info
5  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
rbx = 0x00000000047a1bb0   r12 = 0x00007f3da1014e30
r13 = 0x00007f3da1014e40   r14 = 0x0000000004534230
r15 = 0x00000000047a0f78   rip = 0x0000000001cdd918
rsp = 0x00007f3da1014dd0   rbp = 0x00007fff2aeddc40
Found by: call frame info
6  phantomjs!QThread::exec [qthread.cpp : 542 + 0xc]
rbx = 0x00000000047a0ef0   r12 = 0x00000000047a0f78
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x0000000001bdfdf6
rsp = 0x00007f3da1014e30   rbp = 0x00000000047a0f78
Found by: call frame info
7  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
rbx = 0x00000000047a0f78   r12 = 0x00000000047a1030
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
rsp = 0x00007f3da1014e80   rbp = 0x00000000047955f0
Found by: call frame info
8  libpthread-2.13.so + 0x6b4f
rbx = 0x0000000000000000   r12 = 0x00007fff2aed8f70
r13 = 0x00007f3da10159c0   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x00007f3de5df8b50
rsp = 0x00007f3da1014ed0   rbp = 0x0000000000000000
Found by: call frame info
Thread 6
0  libpthread-2.13.so + 0xb2d4
rbx = 0x00000000047af430   r12 = 0x004189374bc6a7ef
r13 = 0xffffffffffffffff   r14 = 0x00000000047af458
r15 = 0x000000000493dee0   rip = 0x00007f3de5dfd2d4
rsp = 0x00007f3d9bffed30   rbp = 0x00007f3da296d750
Found by: given as instruction pointer in context
1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 86 + 0xa]
rip = 0x0000000001be39f5   rsp = 0x00007f3d9bffed60
rbp = 0x00007f3da296d750
Found by: stack scanning
2  phantomjs!WTF::ThreadCondition::timedWait [ThreadingQt.cpp : 253 + 0x12]
rbx = 0x00007f3da296d748   r12 = 0x0000000000000001
r13 = 0x00007f3da296d748   r14 = 0x00007f3da296d750
r15 = 0x00007f3d9bffee40   rip = 0x00000000004e70ea
rsp = 0x00007f3d9bffede0   rbp = 0x00007f3da296d750
Found by: call frame info
3  phantomjs!WTF::MessageQueueWebCore::LocalStorageTask::waitForMessage [MessageQueue.h : 137 + 0x12]
rbx = 0x0000000000000001   r12 = 0x0000000000000001
r13 = 0x00007f3da296d748   r14 = 0x00007f3da296d750
r15 = 0x00007f3d9bffee40   rip = 0x0000000001185269
rsp = 0x00007f3d9bffee00   rbp = 0x00007f3da296d758
Found by: call frame info
4  phantomjs!WebCore::LocalStorageThread::threadEntryPoint [LocalStorageThread.cpp : 68 + 0xa]
rbx = 0x00007f3de6a83140   r12 = 0x0000000004900be0
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x0000000001185493
rsp = 0x00007f3d9bffee40   rbp = 0x00007f3da296d748
Found by: call frame info
5  phantomjs!WTF::ThreadPrivate::run [ThreadingQt.cpp : 66 + 0x6]
rbx = 0x0000000004746510   r12 = 0x0000000004900be0
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x00000000004e68fb
rsp = 0x00007f3d9bffee70   rbp = 0x0000000004746510
Found by: call frame info
6  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
rbx = 0x0000000004780298   r12 = 0x0000000004900be0
r13 = 0x0000000000000001   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
rsp = 0x00007f3d9bffee80   rbp = 0x0000000004746510
Found by: call frame info
7  libpthread-2.13.so + 0x6b4f
rbx = 0x0000000000000000   r12 = 0x00007fff2aedc3b0
r13 = 0x00007f3d9bfff9c0   r14 = 0x00007f3de6b10040
r15 = 0x0000000000000003   rip = 0x00007f3de5df8b50
rsp = 0x00007f3d9bffeed0   rbp = 0x0000000000000000
Found by: call frame info
Loaded modules:
0x00400000 - 0x0268dfff  phantomjs  ???  (main)
0x7f3da03d6000 - 0x7f3da03f0fff  c059016l.pfb  ???
0x7f3da03f1000 - 0x7f3da048efff  DejaVuSansCondensed.ttf  ???
0x7f3da05f5000 - 0x7f3da060efff  c059013l.pfb  ???
0x7f3da060f000 - 0x7f3da0814fff  libnss_dns-2.13.so  ???
0x7f3da1016000 - 0x7f3da1221fff  libnss_files-2.13.so  ???
0x7f3da1222000 - 0x7f3da1435fff  libresolv-2.13.so  ???
0x7f3de469c000 - 0x7f3de48f1fff  libssl.so.0.9.8  ???
0x7f3de48f2000 - 0x7f3de4c92fff  libcrypto.so.0.9.8  ???
0x7f3de4c97000 - 0x7f3de4e86fff  locale-archive  ???
0x7f3de4e87000 - 0x7f3de50b0fff  libexpat.so.1.6.0  ???
0x7f3de50b1000 - 0x7f3de52c7fff  libz.so.1.2.7  ???
0x7f3de52c8000 - 0x7f3de564dfff  libc-2.13.so  ???
0x7f3de5653000 - 0x7f3de5868fff  libgcc_s.so.1  ???
0x7f3de5869000 - 0x7f3de5aeafff  libm-2.13.so  ???
0x7f3de5aeb000 - 0x7f3de5ddcfff  libstdc++.so.6.0.17  ???
0x7f3de5df2000 - 0x7f3de6009fff  libpthread-2.13.so  ???
0x7f3de600e000 - 0x7f3de6215fff  librt-2.13.so  ???
0x7f3de6216000 - 0x7f3de6419fff  libdl-2.13.so  ???
0x7f3de641a000 - 0x7f3de6650fff  libfontconfig.so.1.5.0  ???
0x7f3de6651000 - 0x7f3de68effff  libfreetype.so.6.8.1  ???
0x7f3de68f0000 - 0x7f3de690ffff  ld-2.13.so  ???
0x7f3de6ad5000 - 0x7f3de6addfff  945677eb7aeaf62f1d50efc3fb3ec7d8-le64.cache-3  ???
0x7f3de6ade000 - 0x7f3de6ae6fff  6d41288fd70b0be22e8c3a91e032eec0-le64.cache-3  ???
0x7f3de6ae7000 - 0x7f3de6aebfff  3047814df9a2f067bd2d96a2b9c36e5a-le64.cache-3  ???
0x7f3de6aec000 - 0x7f3de6af3fff  3f7329c5293ffd510edef78f73874cfd-le64.cache-3  ???
0x7f3de6af4000 - 0x7f3de6afcfff  e13b20fdb08344e0e664864cc2ede53d-le64.cache-3  ???
0x7f3de6b05000 - 0x7f3de6b0bfff  gconv-modules.cache  ???
0x7f3de6b0c000 - 0x7f3de6b0cfff  libc.mo  ???
0x7fff2afff000 - 0x7fff2affffff  linux-gate.so  ???

Please upgrade to PhantomJS 2. 1.9.x is no longer supported, and known to have many crasher bugs that are fixed in 2 version.


Install fails with Unaliased sha1sum, sha1, or shasum not found.

cdieringer@Snapper-osx:~/.nvm$ nvm install 0.10
######################################################################## 100.0%
Unaliased sha1sum, sha1, or shasum not found.
Binary download failed, trying source.

Apparently osx doesn't come bundled with these tools?  I use homebrew as a package manager and ran a brew install md5sha1sum, which resolved the issue for me.  Perhaps a README update is reqd for OSX users?

@cdaringe Using homebrew for anything shouldn't be necessary. Do you perhaps have an alias in your dotfiles/profile/bashrc/bash_profile that has to do with sha?

what do you know!  i found this little guy: alias shasum="sha1sum"

That's what broke it. Remove that, uninstall md5sha1sum, and it will work just fine.


schemaLocation not pointing to valid path

https://github.com/tdwg/dwc/blob/03bc7e182fbce323ae66caedef6da3a1451ca6b8/docs/text/tdwg_dwc_text.xsd#L7
I guess XSD files were originally placed at /xsd/. Should them be moved back or perhaps placed under /schema/ (possibly followed by subdirectories to classify by schema type)?
Also noticed that https://rs.gbif.org/schema/xml.xsd fails to display on FF and Chrome, whereas the other schemas work fine. This URL is pointed by tdwg_dwc_text.xsd.

Corrected in 6e645c9fe0228ed1f2b5b6891c2246118dbb8705.


Errors with Pumpkin Avatar Tools at Startup

Every time I boot up my Unity Project, I get three errors I cannot clear from my console.
The bolded text is what's different between the different errors. Is this caused by the new SDK changes?
Assets\PumkinsAvatarTools\Scripts\Editor\PumkinsAvatarTools.cs**(4343,84): error CS0246: The type or namespace name 'VRCPhysBone' could not be found (are you missing a using directive or an assembly reference?)
Assets\PumkinsAvatarTools\Scripts\Editor\PumkinsAvatarTools.cs(4365,100): error CS0246: The type or namespace name 'VRCPhysBone' could not be found (are you missing a using directive or an assembly reference?)
Assets\PumkinsAvatarTools\Scripts\Editor\PumkinsAvatarTools.cs(93,14)**: error CS0246: The type or namespace name 'VRCPhysBone' could not be found (are you missing a using directive or an assembly reference?)

Restarting my computer fixed it for some reason...?


Build fails on OSX

This seems like such an obvious bug that I'm assuming I must be doing something wrong. Nevertheless, here it is.
Build on OSX fails with error message "No rule to make target stack/examples/proteus.darwin.yaml'". It turns out that there IS a file in the pointed to directory named stack/examples/proteus.Darwin.yaml'. Renaming this file to lowercase solves the problem, and the build appears to progress normally.
The file name is drawn (in the Makefile) from python sys.platform, which is lowercase.

I wonder if something weird is going on with darwin's file system and git. I never can quite remember what the default file system is on OS X. It's somehow nieither case insensitive nor case sensitive.  @mfarthin is proteus.darwin.yaml shown with uppercase or lowercase D on your system? What is the output of
python -c "import  sys;  print sys.platform"

That's what the file name is based on. On my system it says "linux2":)

FYI, It is a lowercase darwin on my mac.

@cekees sorry for the delay in responding. I didn't have my mac with me all day. The output of sys.platform is lowercase darwin but the example file is proteus.Darwin.yaml.
@woodscn do you want to change the capitalization and submit a pull request?

I'd be happy to, but the build ended up failing for me later on, which makes me a bit reluctant, since I can't run the tests to make sure the fix works.
I can start trying to debug that later, but it's probably best handled as a separate issue. Would you still like me to submit the PR, even untested?
N
On Mon, May 23, 2016 at 8:57 PM -0700, "mfarthin"<EMAIL_ADDRESS>wrote:
@cekees sorry for the delay in responding. I didn't have my mac with me all day. The output of sys.platform is lowercase darwin but the example file is proteus.Darwin.yaml.
@woodscn do you want to change the capitalization and submit a pull request?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

Yeah, it's probably better if we do the PR with a working install. I can update and make the name change.

I just submitted pull request #399 to hashstack's to fix the capitalization on proteus/stable. I also had to make a few other changes to get the stack to compile.

Thanks. I merged the hashstack PR. @woodscn, let  us know if you get a successful build so we can close this.

The build still fails. It's checking out commit ed55f4e10f07eb0b85fa6a0d15f4d0e5104902c0 from hashstack, which is not the same as stable/proteus. Perhaps that's the source of the problem?

Yeah, can you change to the stack directory and update it to the latest stable/proteus branch and see if that works?

On May 26, 2016, at 6:39 AM, Nathan Woods<EMAIL_ADDRESS>wrote:
The build still fails. It's checking out commit ed55f4e10f07eb0b85fa6a0d15f4d0e5104902c0 from hashstack, which is not the same as stable/proteus. Perhaps that's the source of the problem?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub https://github.com/erdc-cm/proteus/issues/399#issuecomment-221873224

Seems to solve that particular problem. Thanks!


python 3.8 problem

it might be that the swig generated wrapper is not working with python 3.8, see https://github.com/conda-forge/shogun-feedstock/pull/23

Hey there, I think it would work better with python 3.7 and using anaconda package manager as an environment,
I guess v 3.8 has some sort of bug probably


Use the latest patch version for Rails v5.1.x on ci

How about running CI with the latest patched version for Rails v5.1.x?
Currently Rails v5.1.1 is already released, but the CI jobs are run with Rails v5.0.0.

Would you take your time to review this? 🙏

Good catch!


Continuation of the issue : The situation flow has no creator is recommended?

Thank you for your instruction. But my essential question is not about the way to change flow-creator, but what happens when there is no creator for a long time and if something happens docs describe that.
Originally posted by @MiyukiAmino in https://github.com/MicrosoftDocs/power-automate-docs/issues/519#issuecomment-879487632

@MiyukiAmino - Thanks for your feedback. I've re-opened issue 519, where the history is and am working on a solution for you. Closing this issue. Updates will appear in https://github.com/MicrosoftDocs/power-automate-docs/issues/519.


Temporary quick fix to force the installation of esmvaltool from conda-forge in the conda install Github Action test

Description

Closes #issue_number
Link to documentation:

Before you get started

[ ] ☝ Create an issue to discuss what you are going to do

Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.

[ ] 🛠 This pull request has a descriptive title
[ ] 🛠 Code is written according to the code quality guidelines
[ ] 🛠 Documentation is available
[ ] 🛠 Tests run successfully
[ ] 🛠 The list of authors is up to date
[ ] 🛠 Any changed dependencies have been added or removed correctly
[ ] 🛠 All checks below this pull request were successful

New or updated recipe/diagnostic

[ ] 🧪 Recipe runs successfully
[ ] 🧪 Recipe is well documented
[ ] 🧪 Figure(s) and data look as expected from literature
[ ] 🛠 Provenance information has been added

New or updated data reformatting script

[ ] 🛠 Documentation is available
[ ] 🛠 The dataset has been added to the CMOR check recipe
[ ] 🧪 Numbers and units of the data look physically meaningful

To help with the number of pull requests:

🙏 We kindly ask you to review two other open pull requests in this repository

OK this is a dud, conda keeps picking up numba from default channel, no matter you tell it :angry:


Slides parts 04 and 06

Model selection graphs and future work slide:
Note: have to merge #97 before this one so that the correct res_fitted graph shows up
Note 2: I was not sure what other future works you guys have in mind, feel free to add to slide 06 or let me know

is this ok?

Thanks for the work.It looks pretty nice.

You mistakenly put the wrong fitted vs residual figure in the slide. Please check it.

Didn't he change the graph to the correct one?

I don't think so.

I see that he's using the one that shows residuals with mean 0 and constant variance.


Support for HTTPS

Add support for site maps like https://yourdomain.com/sitemap.xml

My site is accessible from http or https but the apache host setup redirects all traffic to https. If you go to the site manuallly it redirects you to https.
But when the sitemap is generated it shows http.
Do I need the x-forwarded-proto header in the apache config and how do I do that?


Python generic bidirectional streaming fails with empty requests

If either the request or response is empty, it fails after exactly 3 requests.

Huh. Might I trouble you to write up a failing unit test?

Sure, this one fails deterministically

@soltanmm: could you make a quick sanity check of this at the Cython layer and add a passing Cython-layer unit test?

Could be related to #6586

@nathanielmanistaatgoogle 9c372a6. Test code could use a little more clean-up (and I'll be writing up some more utilities to test for batch types and results and such), but it shows a passing Cython-layer test (... that GitHub has absolutely no idea how to show the diff of; also see the GitHub comment I've attached to it).

@kpayson64, is this still an issue after changing python internals?

@jtattermusch Confirmed that this is no longer an issue after GA change.  I will add more test cases (not just bidirectional stream) to #6751, but I think we can close this one.


After implementing the entire MisskeyAPI, client.py now has over 1000…

#3

Merged because I was the only reviewer and the check passed.


CLOUDSTACK-9362: Skip VXLANs when rewriting the bridge name for migrations (4.8)

From the JIRA issue:

https://github.com/apache/cloudstack/commit/bb8f7c652e42caacff5adce1ce60342603677605
The above commit introduces rewriting of bridge device names when migrating a virtual machine from one host to another. However, it also matches bridges called "brvx-1234" and rewrites them to (in my case) "brem1-1234" - this doesn't match the bridge name on the destination and causes the migration to fail with the error:
error : virNetDevGetMTU:397 : Cannot get interface MTU on 'brem1-1234': No such device
I have flagged this as major because it's not possible to migrate VMs using VXLANs for maintenance, which seems important (it's certainly important to me!).

This is a version of #1508 based against 4.8

You opened it against master again...


Address review comments on #1109

Increase zookeeper timeout to make AccountUpdateToolTest pass

Codecov Report

Merging #1111 into master will increase coverage by 0.05%.
The diff coverage is 33.33%.

@@             Coverage Diff              @@
##             master    #1111      +/-   ##
============================================
+ Coverage     68.38%   68.44%   +0.05%
- Complexity     4991     4994       +3
============================================
  Files           390      390
  Lines         31390    31390
  Branches       4019     4019
============================================
+ Hits          21467    21484      +17
+ Misses         8851     8838      -13
+ Partials       1072     1068       -4

Impacted Files
Coverage Δ
Complexity Δ

...java/com.github.ambry.router/GetBlobOperation.java
92.77% <33.33%> (ø)
38 <0> (ø)
:arrow_down:

...ain/java/com.github.ambry.router/PutOperation.java
90.68% <0%> (-0.18%)
107% <0%> (-1%)

...in/java/com.github.ambry.store/BlobStoreStats.java
71.9% <0%> (+0.41%)
106% <0%> (+1%)
:arrow_up:

...java/com.github.ambry.store/CompactionManager.java
90.06% <0%> (+0.66%)
19% <0%> (ø)
:arrow_down:

...rc/main/java/com.github.ambry.store/BlobStore.java
85.42% <0%> (+1.53%)
78% <0%> (+2%)
:arrow_up:

...github.ambry.rest/AsyncRequestResponseHandler.java
90.87% <0%> (+2.28%)
23% <0%> (ø)
:arrow_down:

.../main/java/com.github.ambry.router/DecryptJob.java
97.22% <0%> (+5.55%)
5% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 44cbf18...7ee40d0. Read the comment docs.

Ran "gradle build test" and it passed with flying colors.


reorganize code for testing purposes

What type of PR is this? (check all applicable)

[x] Refactor
[ ] Feature
[ ] Bug Fix
[ ] Optimization
[ ] Documentation Update

Related Tickets & Documents

Closes #22

Description
Move code out of main.rs into other files for ease of testing. According to Rust test organization - integration tests for binary crates a binary crate with all code in main.rs is not testable.

Break out most code into prover.rs.
Move some utility code to utils.rs.
Keep a simple fn main() in main.rs.
Place public references in lib.rs.
Add /tests directory.
Add test for utility function.

Developer Notes
The included test is a sanity check for the timestamp conversion. In the future we should add tests for business logic and general function, such that we can refactor code as needed and still verify proper operation.
Testing Instructions, Screenshots, Recordings

[x] cargo run --release and verify proper operation of the binary after this code refactor/relocation.
[x] cargo test and verify the results as seen here:

     Running tests/utils_test.rs (target/debug/deps/utils_test-616a2a19a34fab7f)

running 2 tests
test test_proving_timestamps_from_response_invalid_datestring ... ok
test test_proving_timestamps_from_response ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

[x] verify the test logic and assertions
[ ] consider what logic in prover.rs might be good to have tested
[ ] (extra credit) outline a useful test for the prover.rs logic identified above, assuming no internet access

Added/updated tests?

[x] Yes
[ ] No, and this is why: please replace this line with details on why tests
have not been included
[ ] I need help with writing tests

[optional] What gif best describes this PR or how it makes you feel?

Batch proof requests are being processed:
2024-11-04T18:50:34.053783Z  INFO working_loop{i=0}: scroll_proving_sdk::prover: Task status update prover_name="sindri_0" task_type=Batch coordinator_task_uuid="5e4bc454-3099-41fb-8370-4efe8a934619" coordinator_task_id="0x94663b7acee82c68597b326b1fe9970dcac9698fba14d2357331c6f4a7b98426" proving_service_task_id="ae788133-ffa5-4622-a107-8c440d540363" status=Proving

Regarding additional tests, the most obvious one would be to check for a valid API key.
This can be done by making a GET request to the Sindri team/me API endpoint.
As noted in the following docstring, there are three steps to generating a proof with Sindri:
    // There are three steps to prove a circuit:
    // 1. Get the verification key from the Sindri proving service.
    // 2. Submit a proof to the Sindri proving service.
    // 3. Query the status of the proof task.

We already check the validity of the verification key in our customer_script repository.
Running a test by querying the create_proof endpoint with a sample input would not be appropriate for this repository -- this is covered by Sindri-qa.
The only way to test this have a proof job in progress...


[5.4] Added ability to pass a model (or collection) on whereHas builder method

Usage:

$posts = Post::all();
$user = User::whereHas(['posts' => $posts])->get();

Or passing a single record:

$post = Post::first();
$user = User::whereHas(['posts' => $post])->get();

** It will automatically add to the query the relation subquery with an "in" operator for the given posts

I'm not sure of the usage of this since it is not described what the method actually does. However, I don't think I can plan to add this implementation at this time.


[Tiny] Dockerfile: use tini to reap zombie processes

Context
In our production instance doc workers, we can see hundreds of zombie processes. We would like to have them cleaned.
Proposed solution
We have in mind one of these solutions:

use --init option for the docker run command or shareProcessNamespace option for kubernetes;
use a tool like tini to reap zombie processes;

The latter option seems better so it can benefit to everyone using docker/podman or kubernetes without having to worry about the options to pass.
How to test?
Run the following command:
$ docker run --name grist -e GRIST_SANDBOX_FLAVOR=gvisor -ti -p 8484:8484 --rm gristlabs/grist

(please note that we don't add the --init option).
Open or create some document, force-reload the data engine.
Now if you open a shell (docker exec -ti grist /bin/bash), you should see zombie processes (marked with STAT=Z or STAT=Zs):
root@eb81d9203e56:/grist# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1 10.6  0.9 1000880 154888 pts/0  Ssl+ 09:54   0:02 node _build/stubs/app/server/server.js
root         189  0.0  0.0      0     0 ?        Zs   09:54   0:00 [exe] <defunct>
root         229  0.3  0.0      0     0 ?        Z    09:54   0:00 [exe] <defunct>
root         237  0.0  0.0   3868  3212 pts/1    Ss   09:54   0:00 /bin/bash
root         268  0.0  0.0      0     0 ?        Zs   09:54   0:00 [exe] <defunct>
root         309  2.2  0.0      0     0 ?        Z    09:54   0:00 [exe] <defunct>
root         331  0.0  0.0  17040 13100 pts/0    S+   09:54   0:00 python3 sandbox/gvisor/run.py -E PYTHONPATH=/grist/sandbox/grist -E PIPE_MODE=minimal -m /grist/sandbox --restore /tmp/engine__grist python3 -- /
root         334  0.0  0.1<PHONE_NUMBER>8 pts/0    Sl+  09:54   0:00 runsc -root /tmp/runsc -unprivileged -ignore-cgroups -network none restore --image-path=/tmp/engine__grist _tmp_tmpax_u641x
root         340  0.0  0.1<PHONE_NUMBER>6 pts/0    Sl+  09:54   0:00 runsc-gofer --root=/tmp/runsc --network=none --unprivileged=true --ignore-cgroups=true gofer --bundle /tmp/tmpax_u641x --spec-fd=3 --mounts-fd=4
root         341  0.0  1.0 3012440 168676 ?      Ssl  09:54   0:00 runsc-sandbox --root=/tmp/runsc --network=none --unprivileged=true --ignore-cgroups=true boot --bundle=/tmp/tmpax_u641x --total-memory<PHONE_NUMBER>
root         356  0.0  0.0      4     4 ?        tsl  09:54   0:00 [exe]
root         396  0.0  0.1  47616 30912 ?        tl   09:54   0:00 [exe]
root         403  0.0  0.0   7640  2680 pts/1    R+   09:54   0:00 ps aux

Now if you build the docker image and run it, you should not see zombie processes anymore:
root@4b9fe56f7592:/grist# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0   2284   756 pts/0    Ss   09:57   0:00 /usr/bin/tini -s -- ./sandbox/run.sh
root           7 11.8  0.9 1002856 153744 pts/0  Sl+  09:57   0:02 node _build/stubs/app/server/server.js
root         329  0.1  0.0   3868  3216 pts/1    Ss   09:58   0:00 /bin/bash
root         341  3.0  0.0  17040 13124 pts/0    S+   09:58   0:00 python3 sandbox/gvisor/run.py -E PYTHONPATH=/grist/sandbox/grist -E PIPE_MODE=minimal -m /grist/sandbox --restore /tmp/engine__grist python3 -- /
root         344  0.0  0.1<PHONE_NUMBER>2 pts/0    Sl+  09:58   0:00 runsc -root /tmp/runsc -unprivileged -ignore-cgroups -network none restore --image-path=/tmp/engine__grist _tmp_tmpbcv0s1vq
root         350  1.0  0.1<PHONE_NUMBER>0 pts/0    Sl+  09:58   0:00 runsc-gofer --root=/tmp/runsc --network=none --unprivileged=true --ignore-cgroups=true gofer --bundle /tmp/tmpbcv0s1vq --spec-fd=3 --mounts-fd=4
root         351 48.0  0.9 2944788 154724 ?      Ssl  09:58   0:00 runsc-sandbox --root=/tmp/runsc --network=none --unprivileged=true --ignore-cgroups=true boot --bundle=/tmp/tmpbcv0s1vq --total-memory<PHONE_NUMBER>
root         366  0.0  0.0      4     4 ?        tsl  09:58   0:00 [exe]
root         405  4.0  0.1  44760 29572 ?        tl   09:58   0:00 [exe]
root         411  0.0  0.0   7640  2712 pts/1    R+   09:58   0:00 ps aux

@paulfitz @jordigh FWIW, we activated the k8s option shareProcessNamespace, so from our prospecting this PR is not very urgent.
We have opened this PR so we avoid zombies while running docker images with the default options.

Zombie processes are technically something we are doing wrong, but this comment

I'm sure you could solve that in code, but again: why write it when you can just drop Tini in?

convinced me that the "right" solution isn't worth it. Merging this one in.


Set ZArray fill_value back to nan

I'm hitting an error since 10bd53dc3dae08303e57fe5aefe49804d9c4517d when opening a json created with VirtualiZarr:
File "/Users/thodson/micromamba/envs/virtualizarr-dev/lib/python3.11/site-packages/zarr/meta.py", line 141, in decode_array_metadata
    raise MetadataError("error decoding metadata") from e
zarr.errors.MetadataError: error decoding metadata

I believe this is related to #201, but I don't have a unit test yet.
To replicate the error:
aws s3api get-object --region us-west-2 --no-sign-request --bucket wrf-se-ak-ar5 --key ccsm/rcp85/daily/2060/WRFDS_2060-01-01.nc WRFDS_2060-01-01.nc
aws s3api get-object --region us-west-2 --no-sign-request --bucket wrf-se-ak-ar5 --key ccsm/rcp85/daily/2060/WRFDS_2060-01-02.nc WRFDS_2060-01-02.nc

then run this example.py
import xarray as xr
import glob
from virtualizarr import open_virtual_dataset

virtual_datasets = [
    open_virtual_dataset(filepath,
                         indexes={},
                         loadable_variables=['Time'],
                         cftime_variables=['Time'])
    for filepath in glob.glob('*.nc')
]

virtual_ds = xr.combine_nested(virtual_datasets, concat_dim=["Time"], coords="minimal", compat="override")
virtual_ds.virtualize.to_kerchunk('combined.json', format='json')

ds = xr.open_dataset('combined.json', engine="kerchunk")

Changing one line in this PR seems to fix the issue:
fill_value: FillValueT = Field(default=np.nan, validate_default=True)

@TomAugspurger, referencing back to #201. Pulling you over here, because we might be crossing issues.
I would test this with:
aws s3api get-object --bucket wrf-se-ak-ar5 --key ccsm/rcp85/daily/2060/WRFDS_2060-01-01.nc WRFDS_2060-01-01.nc
aws s3api get-object --bucket wrf-se-ak-ar5 --key ccsm/rcp85/daily/2060/WRFDS_2060-01-01.nc WRFDS_2060-01-02.nc

then run this example.py
import xarray as xr
import glob
from virtualizarr import open_virtual_dataset

virtual_datasets = [
    open_virtual_dataset(filepath,
                         indexes={},
                         loadable_variables=['Time'],
                         cftime_variables=['Time'])
    for filepath in glob.glob('*.nc')
]

virtual_ds = xr.combine_nested(virtual_datasets, concat_dim=["Time"], coords="minimal", compat="override")
virtual_ds.virtualize.to_kerchunk('combined.json', format='json')

ds = xr.open_dataset('combined.json', engine="kerchunk")

This should fail on main with
  raise MetadataError("error decoding metadata") from e
zarr.errors.MetadataError: error decoding metadata

but passes with this PR.

Thanks. I had to modify that slightly to work with my env:
aws s3api get-object --region us-west-2 --no-sign-request --bucket wrf-se-ak-ar5 --key ccsm/rcp85/daily/2060/WRFDS_2060-01-01.nc WRFDS_2060-01-01.nc
  aws s3api get-object --region us-west-2 --no-sign-request --bucket wrf-se-ak-ar5 --key ccsm/rcp85/daily/2060/WRFDS_2060-01-01.nc WRFDS_2060-01-02.nc

Taking a look.

What version of Zarr do you have?

What version of Zarr do you have?

2.18.2

Thanks, I was able to reproduce it.
I would suggest something like this:
diff --git a/virtualizarr/zarr.py b/virtualizarr/zarr.py
index e5015b3..3647db5 100644
--- a/virtualizarr/zarr.py
+++ b/virtualizarr/zarr.py
@@ -32,13 +32,14 @@ ZAttrs = NewType(
 )  # just the .zattrs (for one array or for the whole store/group)
 FillValueT = bool | str | float | int | list | None

-ZARR_DEFAULT_FILL_VALUE: dict[np.dtype, FillValueT] = {
+ZARR_DEFAULT_FILL_VALUE: dict[str, FillValueT] = {
     # numpy dtypes's hierarchy lets us avoid checking for all the widths
     # https://numpy.org/doc/stable/reference/arrays.scalars.html
-    np.dtype("bool"): False,
-    np.dtype("int"): 0,
-    np.dtype("float"): 0.0,
-    np.dtype("complex"): [0.0, 0.0],
+    np.dtype("bool").kind: False,
+    np.dtype("int").kind: 0,
+    np.dtype("float").kind: 0.0,
+    np.dtype("complex").kind: [0.0, 0.0],
+    np.dtype("datetime64").kind: np.datetime64("NaT").view("i8").item(),
 }
 """
 The value and format of the fill_value depend on the `data_type` of the array.
@@ -67,7 +68,7 @@ class ZArray(BaseModel):
     chunks: tuple[int, ...]
     compressor: dict | None = None
     dtype: np.dtype
-    fill_value: FillValueT = Field(default=0.0, validate_default=True)
+    fill_value: FillValueT = Field(None, validate_default=True)
     filters: list[dict] | None = None
     order: Literal["C", "F"]
     shape: tuple[int, ...]
@@ -90,7 +91,7 @@ class ZArray(BaseModel):
     @model_validator(mode="after")
     def _check_fill_value(self) -> Self:
         if self.fill_value is None:
-            self.fill_value = ZARR_DEFAULT_FILL_VALUE.get(self.dtype, 0.0)
+            self.fill_value = ZARR_DEFAULT_FILL_VALUE.get(self.dtype.kind, 0.0)
         return self

     @property

That adds a default fill value for datetimes that ends up as NaT. Unfortunately, something strange was going on with the lookup of that dtype, so I had to change that mapping to use .dtype.kind instead. Dunno if that'll cause other issues.
I think that once virtualizarr is able to use zarr.Array internally then things will be smoother.

Great suggestion, @TomAugspurger!
I revised the PR, and it passed my example, as well as the test suite. However, I have no sense of who might be affected by this change and whether it's worth the risk.

Thanks for rooting this out guys! Let's a regression test to be sure the fix is working.

Just a note that this regression appears to affect one of the roundtrip tests in my HDF reader PR.  It also seems that this PR has the same result.  I'll need to dig in a bit more to see exactly what is occurring in the date decoding chain there.

Here's an integration test:

@TomAugspurger I've just sent an invite to give you write access to this repo - if you want to add commits to this branch with your integration test then go for it.

Pushed that test and the change back to 0 for datetime types up. With that, the original example in https://github.com/zarr-developers/VirtualiZarr/pull/206#issue-2439025221 is working for me.

Okay! Let's add a note about this regression to the release notes then feel free to merge :)

Thanks @thodson-usgs!


Font's with Ll i and I

Please use a font that clearly shows i different from L in all cases
[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: bf2281d4-1470-0658-ec5a-687fe2cd451c
Version Independent ID: 2ce2be3e-e3a2-790c-3bff-90efe7318450
Content: robocopy
Content Source: WindowsServerDocs/administration/windows-commands/robocopy.md
Product: windows-server
Technology: windows-commands
GitHub Login: @JasonGerend
Microsoft Alias: jgerend

#doc-enhancement

#label:doc-enhancement

#label:"doc-enhancement"

#assign:IngridAtMicrosoft

@wattieswatties Thank you for your feedback.  Can you provide a screenshot from this article where L and I are not differentiated?

#assign:xelu86

Hey @wattieswatties,
Thanks again for contacting Microsoft. We value your feedback. A documentation change has been made and will be live after the next business day. We will be closing this as resolved. Thank you and have a most pleasant day. #please-close


Allow using the client without the authorization flow of the SDK

I use my own OAuth client for authorization with the implicit flow and I successfully retrieved the access token etc. from OneDrive.
The SDK however doesn't allow me to create an authenticated OneDriveClient object with my already obtained access token. Is there any way around this? I really want to avoid the work needed for implementing my own client based on the REST API.

Yes there is a way around this!
If you would like to use a token that you obtained on your own, you will need to construct the OneDriveClient as per usual, but pass in a Session object, like this:
http_provider = onedrivesdk.HttpProvider()
auth_provider = onedrivesdk.AuthProvider(
    http_provider=http_provider,
    client_id=client_id,
    scopes=scopes)

session = onedrivesdk.Session(
    token_type,                  #in token response
    expires_in,                  #in token response
    scope,                       #in token response
    access_token,                #in token response
    client_id,
    auth_token_url,              #can be None for you, since you're handling auth
    redirect_uri,                #can be None for you, since you're handling auth
    refresh_token,               #in token response, if you asked for one, otherwise None
    client_secret)               #if you have one, otherwise None

auth_provider._session = session
client = onedrivesdk.OneDriveClient(api_base_url, auth_provider, http_provider)

Keep in mind that this means that if the token is expired, the AuthProvider will attempt to refresh the token using the refresh_token, so it must be provided in this case. If it is not, it will raise a RuntimeError.

Another thought, if you want to avoid all the scaryness that comes from just throwing a Session object in, is to implement all of your authentication flow in an object based on AuthProviderBase. This is what we based AuthProvider on and makes it super flexible for you to implement yourself.

Thank you very much for the fast answer, the session object looks promising. I will have to see what I do about the missing refresh token and the resulting error handling. The implicit flow doesn't provide one and then again, I couldn't use it anyways since I'm not using my client secret (open source application, no way to keep the client secret secret).
And yes, I already noticed the AuthProviderBase but I couldn't find any documentation for any method and their return values so I wasn't sure if that would help me or how that would help me exactly.
I may look further into the base class soon.

I would recommend looking at AuthProvider for a good example of what AuthProviderBase should do or how to implement/what to return. There are fully-fleshed-out comments there with everything you would need to make your own implementation.

Short update: My own implementation works fine but it's a shame that you can't retrieve a refresh token when using the token flow (even when adding offline_access to the scopelist).
See https://dev.onedrive.com/auth/msa_oauth.htm.
Thanks for you help @D4N14L.

It seems that __init__.py of onedrivesdk doesn't contain from .session import Session anymore, so I can't import Session from onedrive module. Is it a bug ?


GUI to confirm/reject propositions to link intents with specific Services

AS A Chatbot Trainer and/or Service Manager
I WANT TO confirm/reject propositions to link intents with specific Services
SO THAT Services could be proposed to be initiated when a specific intent has been detected and vice versa
Acceptance Criteria

[ ] GUI is called "Auto-Services"
[ ] List of intents is shown
[ ] List of Services is shown
[ ] Intents can be proposed to be linked with a specific Service
[ ] Services can be proposed to be linked with a specific intent
[ ] Propositions to link an intent with a specific Service can be rejected
[ ] Propositions to link a Service with a specific intent can be rejected
[ ] Already linked intent can be unlinked
[ ] Already linked Service can be unlinked

Main Menu

[ ] Replace the path under /services/followupTraining in service module with the attached path
[ ] Add a new path under /training/autoServices in training module with the attached path

Path

{
  "label": {
     "et": "Iseteenused",
     "en": "Auto Services"
  },
  "path": “/Auto-Services
}

@bartekpospiech @turnerrainer @ExiRain
the path added to menu is the following
{
    "label": {
        "et": "Automatic Teenused",
        "en": "Automatic Services"
     },
     "path": "/auto-services"
}


[Public Catalog] Tiles on the overview tab are clickable an open the corresponding tab

Tiles on the overview what's included section should be clickable and open the tab of the component. For example a dashboard tile would open the dashboard tab within the quick start.

If approved by design we'd also do this in the product.

I spoke to @danielgolden and he wanted to take a different approach so we'll see what he thinks.

I think this is already the case @jpvajda the cursor is the default arrow on mouse-over

@rudouglas Yeah it seems to be working (kind of) but do me a favor go here and roll over the overview tiles with your mouse, the docs tiles actually show a cursor, not an arrow for me on both FF and Chrome.
It's subtle but a bit confusing, happy to show you as well as it's hard to screenshot.

nevermind, it seems to do this on the text in each tile. this is Ok. 🍭


Port token js tests from solana-localnet to solana-test-validator

Replace solana-localnet with solana-test-validator in Token JS tests.
Depends-on: Solana 1.5.0

@jstarry / @joncinque - I only ported token/js over to solana-test-simulator, it would be nice to drop solana-localnet from the other JS in SPL too.  Not a big rush but I think it's nicer.   The lack of macOS binaries for 1.5.0 is annoying for local dev though, hopefully I'll be able to work that out with Travis CI soon :-/
@jackcmay - the BPF VM signatures changed in 1.5 so I just commented out the instruction counting tests for now.  I feel like reworking those to be solana-program-test-based would be a nicer path for the future anyway.  Although solana-program-test doesn't allow you to get an exact instruction count currently, you can put a cap on the total compute units so I feel that is close enough.  I feel the BPF VM API is something internal as well, so by not using it in SPL we don't implicitly promote this to Solana devs looking for some examples to copy from


[ALLUXIO-3249] Channel#writeAndFlush get stuck in AbstractReadHandler

https://alluxio.atlassian.net/browse/ALLUXIO-3249

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/20736/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/20737/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/20738/
Test PASSed.

yes, it will cause garbage collect this unhealthy channel.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/20765/
Test PASSed.

@Reidddddd For the case when the channel is still healthy but not used (ie. we used it once and now have returned it to the pool), will this cause those channels to be closed?
We currently have something which automatically garbage collects unused channels (5 minutes), but that logic is only if it is returned to the pool (does not work for the case you are describing). I'm wondering for the normal case, will these two garbage collection mechanisms overlap?

The phenomenon is that channel is open and is active (so judge is still healthy?), but server side writeAndFlush get stuck, and client side reads nothing, so the readLock is being held forever.

I'm wondering for the normal case, will these two garbage collection mechanisms overlap?
I'm afraid it is, this pr may not be a good solution, but it does solve the described phenomenon. I'm not familiar with netty, if you come up a better solution, please point it out.

BTW, the described phenomenon happens on spark client.

Can one of the admins verify this patch?

@Reidddddd Could you add a test which demonstrates the problem you are observing? Is this only a problem in close, in other calls I imagine the client will timeout in a reasonably short time when the server does not reply?

Jenkins, ok to test.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/25/
Test PASSed.

I'm not sure it is easily reproducible in UT...
Would you mind spending some time to skim those pasted logs and descriptions in https://alluxio.atlassian.net/browse/ALLUXIO-3249?
It may help you know what's going on and enlighten you some thoughts.

@calvinjia do you have further suggestion on this PR?

@Reidddddd Sorry for the slow response. The problem with this change is we will implicitly set a 2 minute timeout for all Netty operations, which will be a problem for some calls like close which can take longer than 2 minutes due to uploading to object stores.

Yep, please hold. I met some other issues caused by this fix in production env.

I don't think this code applies to the new RPC framework after Alluxio 2.0+.
There has also not been any activity for over a year. I'm going to close it.


Show full-size logo on slide first page

Broken in commit 379a80ab7dc2d589f58fda5221042947cb0c86aa .

Looks good to me!


Add support for non-known account class hash

As we've seen recently, lot's of people without coding background are struggling using custom account with starkli.
Could we think about a way that Starkli is not checking the account class hash, even if we have to display an error message?
Because in the first idea it was that any people using custom account contract will have the knowledge to edit files manually. But with katana or other devnet we've seen that new developers / users are facing this issue and don't always have the knowledge to create the files.
WDYT @xJonathanLEI?

katana and devnet accounts can be fetched right?

Thank you for the feedback @xJonathanLEI, effectively with latest version it's possible to fetch. :+1:


Bhaiya ek error aa rha hai pichhle kaafi dino se, pls help

Sir I am also making a running tracker app, but got this error 2 days back and couldnt able to solve it yet, so could you please help
Error is in inflating class google android material bottom navigation
I tried stackoverflow, youtube, but it didnt work

Sorry didn't saw your message.Please let me know the error.

Sir I am also making a running tracker app, but got this error 2 days back and couldnt able to solve it yet, so could you please help
Error is in inflating class google android material bottom navigation
I tried stackoverflow, youtube, but it didnt work

Share some screenshots of the error

here is the screenshot of error
On Thu, Sep 3, 2020 at 10:04 PM Mridul Mishra<EMAIL_ADDRESS>wrote:

Sir I am also making a running tracker app, but got this error 2 days back
and couldnt able to solve it yet, so could you please help
Error is in inflating class google android material bottom navigation
I tried stackoverflow, youtube, but it didnt work
Share some screenshots of the error
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/codeMoriarity/Track-your-Fit/issues/2#issuecomment-686611388,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APZMR77D3I75UDN23GMN2IDSD7AQDANCNFSM4QTHPZTQ
.

here is the screenshot of error
…
On Thu, Sep 3, 2020 at 10:04 PM Mridul Mishra @.***> wrote: Sir I am also making a running tracker app, but got this error 2 days back and couldnt able to solve it yet, so could you please help Error is in inflating class google android material bottom navigation I tried stackoverflow, youtube, but it didnt work Share some screenshots of the error — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#2 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/APZMR77D3I75UDN23GMN2IDSD7AQDANCNFSM4QTHPZTQ .

Sorry, could not find your screenshot anywhere. Please mail me at<EMAIL_ADDRESS>

I have mailed you sir on your email id

As per logCat error is at line 18 in MainActivity.kt which is (setContentView(R.layout.activity_main). I guess Studio ain't recognizing the activity_main.xml file as you can see the color of that line has also not changed. Try deleting the file(activity_main.xml) and keep the cursor at line 18 in MainActivity.kt file, it will recommend to create that file, click on that and copy the original code.
As per logCat I can find this error only, Let me know if it works/doesn't works

sir maine activity_main.xml file delete kri, or  cursor ako line 18 in
MainActivity.kt file, pr rkha, lein usne koi error show nhi kiya
On Sat, Sep 5, 2020 at 11:08 PM Mridul Mishra<EMAIL_ADDRESS>wrote:

As per logCat error is at line 18 in MainActivity.kt which is
(setContentView(R.layout.activity_main). I guess Studio ain't recognizing
the activity_main.xml file as you can see the color of that line has also
not changed. Try deleting the file(activity_main.xml) and keep the cursor
at line 18 in MainActivity.kt file, it will recommend to create that file,
click on that and copy the original code.
As per logCat I can find this error only, Let me know if it works/doesn't
works
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/codeMoriarity/Track-your-Fit/issues/2#issuecomment-687640217,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APZMR75CBALKRNVYVSNNLTTSEJZR3ANCNFSM4QTHPZTQ
.

As per logcat error was at line 18.
Ok fine , send me the github link of your project, I will correct whatever
error you are getting.
That would be better.
On Sun, 6 Sep 2020, 17:14 Karan326<EMAIL_ADDRESS>wrote:

sir maine activity_main.xml file delete kri, or cursor ako line 18 in
MainActivity.kt file, pr rkha, lein usne koi error show nhi kiya
On Sat, Sep 5, 2020 at 11:08 PM Mridul Mishra<EMAIL_ADDRESS>wrote:

As per logCat error is at line 18 in MainActivity.kt which is
(setContentView(R.layout.activity_main). I guess Studio ain't recognizing
the activity_main.xml file as you can see the color of that line has also
not changed. Try deleting the file(activity_main.xml) and keep the cursor
at line 18 in MainActivity.kt file, it will recommend to create that
file,
click on that and copy the original code.
As per logCat I can find this error only, Let me know if it works/doesn't
works
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<
https://github.com/codeMoriarity/Track-your-Fit/issues/2#issuecomment-687640217
,
or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/APZMR75CBALKRNVYVSNNLTTSEJZR3ANCNFSM4QTHPZTQ
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/codeMoriarity/Track-your-Fit/issues/2#issuecomment-687766557,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AM6D5ZJEAJTWXH25IIE6NQTSENYY3ANCNFSM4QTHPZTQ
.


Update installation.md

Added internal ingress host flag description and example files

[CI] Staging environment is at http://cap-staging-docs.codefresh.io.s3-website.us-east-1.amazonaws.com/cf-internal-external-ingress/docs/

[CI] Staging environment is at http://cap-staging-docs.codefresh.io.s3-website.us-east-1.amazonaws.com/cf-internal-external-ingress/docs/


No normal status matched, return unreachable temporary

It tells me "No normal status matched, return unreachable temporary" when I debug my app on my phone, I have no idea, what's wrong with it

That means " RRStateInvalid  or RRStateUnloaded ". That means the reachability is not working normally. Would you please tell me more about what you do with you app? or send your demo to me?
Thank you<EMAIL_ADDRESS>


NSP security vulnerability in dependencies

Hi,
Please note that<EMAIL_ADDRESS>uses<EMAIL_ADDRESS>which uses<EMAIL_ADDRESS>which uses<EMAIL_ADDRESS>which has 2 vulnerabilities:
https://nodesecurity.io/advisories/39 (Incorrect Handling of Non-Boolean Comparisons During Minification)
https://nodesecurity.io/advisories/48 (Regular Expression Denial of Service)
Also<EMAIL_ADDRESS>uses<EMAIL_ADDRESS>which has another vulnerability:
https://nodesecurity.io/advisories/118 (Regular Expression Denial of Service)
Could I suggest to update to pug instead, since jade has been renamed to pug?
This might be a good alternative (suggested by the maintainer of templatizer):
https://github.com/happilymarrieddad/puglatizer

@mikewli, feel free to submit a PR, if you have time. Otherwise, I'll try to get to it sometime soon.

Sure, will do when I have time. Thanks.


Ignore changing_spec_relearns_crate_types on windows-gnu

This disables the custom_target::changing_spec_relearns_crate_types on windows-gnu targets for the same reason as #12763. The update to LLVM 17 has started to cause lld to crash when using a custom target. cc https://github.com/rust-lang/rust/issues/115985
I surveyed the rest of the testsuite, and I don't see any other tests that perform linking with custom targets.

@bors r+

:pushpin: Commit 8161ba50cd5ec6fffff26a19c9ad34d16a428b53 has been approved by epage
It is now in the queue for this repository.

:hourglass: Testing commit 8161ba50cd5ec6fffff26a19c9ad34d16a428b53 with merge 360059edcdd35b8d3e3ead2eb82470de44f857d9...

:sunny: Test successful - checks-actions
Approved by: epage
Pushing 360059edcdd35b8d3e3ead2eb82470de44f857d9 to master...


Unknown subcommand: get-url

$ git-town new-pull-request

[fix-464] git fetch --prune

cd /Users/aeneas/workspaces/go/src/github.com/ory/hydra

[fix-464] git add -A

[fix-464] git stash
Saved working directory and index state WIP on fix-464: e81bf43 docs: update ory hydra for enterprise section
HEAD is now at e81bf43 docs: update ory hydra for enterprise section

[fix-464] git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

[master] git rebase origin/master
Current branch master is up to date.

[master] git checkout fix-464
Switched to branch 'fix-464'
Your branch is up-to-date with 'origin/fix-464'.

[fix-464] git merge --no-edit origin/fix-464
Already up-to-date.

[fix-464] git merge --no-edit master
Already up-to-date.

[fix-464] git stash pop
On branch fix-464
Your branch is up-to-date with 'origin/fix-464'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   config/backend_connections_test.go

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   config/backend_connections.go

Dropped refs/stash@{0} (9c3763d8ed6668d1512273e03aecdfc2630a4db7)

cd /Users/aeneas/workspaces/go/src/github.com/ory/hydra/config
2017/05/23 20:44:56 Command: git remote get-url origin
Output: error: Unknown subcommand: get-url
usage: git remote [-v | --verbose]
   or: git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--mirror=<fetch|push>] <name> <url>
   or: git remote rename <old> <new>
   or: git remote remove <name>
   or: git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
   or: git remote [-v | --verbose] show [-n] <name>
   or: git remote prune [-n | --dry-run] <name>
   or: git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]
   or: git remote set-branches [--add] <name> <branch>...
   or: git remote set-url [--push] <name> <newurl> [<oldurl>]
   or: git remote set-url --add <name> <newurl>
   or: git remote set-url --delete <name> <url>

    -v, --verbose         be verbose; must be placed before a subcommand

Error: exit status 129

What version of git are you using? It appears that was added in Git 2.7.0. As of 4.0.1, Git Town enforces git to be 2.6 or higher but it looks like we need to bump that 2.7.0

Yes it's git 2.6.2, the one included in xcode.

Is upgrading a possibility for you? get-url helps make our code much simpler.

It would be great if I didn't have to, what way do you recommend? Wouldn't upgrading git via brew give conflicts with e.g. xcode git?

I think Xcode just provides Git because it needs it. And it's an older version because Apple is notoriously bad at upgrading anything that ships with macOS. Git is pretty well forward and backward compatible, and installing newer versions should be side effect free. In general, it's a good idea to use the latest version of all tools that one uses (Go, Node, Git, XCode, etc), because they contain important bug and security fixes, new features, and performance improvements.


Feature: Chat History export to JSON

Feature: Chat History export to JSON

Description

Problem: Chat history export is not implemented yet.
Solution: Chat history export of a specific chat thread is implemented.
Any background context or related links?

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactoring (no functional changes, only code improvements)
[ ] Documentation update

How to Test

Step 1: Create a New Chat
Step 2: Ask a chat model something
Step 3: Click 'Export as JSON' in the right-bottom corner
Step 4: Open a JSON file and inspect it

Screenshots (if applicable)
Checklist

[x] My code follows the code style of this project.
[x] I have performed a self-review of my code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] New and existing unit tests pass locally with my changes.
[ ] Any dependent changes have been merged and published in downstream modules.
[ ] I have updated the documentation where necessary.

Work is still in progress

Removed unused and commented code, added a new state to manage visibility of this button (should click on mode first, then button appears)


Updates for all extensions used

Clean-up .DS_Store files
Update to comply to pl-extension (according to schema) - worked mostly on education, open-skysat-data so far
Update eo extension version (eo:snow_cover)
Update projection extension version (for improved schema validation)
Update raster extension (for consistency)
Add experimental field to the open skysat collections which say that they are WIP
More consistent titles
Fixed a couple of links (e.g. root, collection)

Open points:

The cloud cover in the open skysat data might be wrong. According to docs it's a 1:1 mapping (both 0-100), but in the metadata linked to from the items it's for example 0.07 which results in 7 in the STAC Item. If the documentation is correct, it should also be 0.07 in the item (e.g. for 20201214_180231_ssc12_u0002).

@cholmes

Ready for review, left a couple of comments with open questions for you.


BitDatePicker and BitDateRangePicker Min Max Date issue on Jalali culture

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
when the culture of Bit DateRangePicker is set to fa-Ir the date boundaries feature (Min or Max date) not working and causes the user can not be able to select a date, also it's the same for the DatePicker.

    <BitDateRangePicker Label="تاریخ رفت"
                      FormatDate="yyyy/MM/dd"
                      Culture="CultureInfoHelper.GetFaIrCultureByFarsiNames()"
                      Style="margin-right:200px; max-width: 300px"
                      AriaLabel="تاریخ رفت"
                      Placeholder="تاریخ رفت"
                      GoToToday="امروز"
                      MinDate="DateTimeOffset.Now"
                      @bind-Value="@SelectedDate" />

Expected Behavior
No response
Steps To Reproduce
No response
Exceptions (if any)
No response
.NET Version
No response
Anything else?
No response

Thanks for contacting us. We're investigating this issue.
We'll let you know if it's possible to work on this issue or not.

The issue is accepted and planned. Resolving it will start ASAP.

Resolving this issue has started. It will be announced when this issue is resolved.

This issue has been resolved and it will be available in the next pre-release version. It will be announced when the pre-release becomes ready.

The pre-release has been published. Please give it a try and give feedback.


Ignore errors

Oleksandr, if possible please allow to refactor things and autocompletion even if there are grammar errors?
Currently smallest error prevents from the above:

Expected:

Actual

Thanks for AWESOME plugin!


Package distributions are not licensed

Hi @marionebl 👋 The code of the commitlint monorepo is licensed under MIT, and that's great. But according to MIT, the license text needs to be attached everywhere:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

The npm packages as they're published and distributed, do not comply with this as they do not contain the license files. Effectively, without the full license text they're proprietary code and cannot be used by anyone who cares about licenses. The SPDX identifier in the package.json is not satisfactory (not only) for the reasons mentioned above. There are two solutions to this:

Upgrade to Lerna@3, as it has the licensing built-in now
Copy & paste the root license to all projects in the packages directory, so it gets picked up by npm during publishing, and to re-publish all of them with a new patch version.

For more information, see https://github.com/lerna/lerna/pull/1465#issuecomment-405184876, https://github.com/babel/babel/pull/7308#issuecomment-367615152, https://github.com/babel/babel/pull/8409#issuecomment-415379558.

Thanks for bringing this to my attention, will create a properly licensed release right away.

Fixed via 7.1.2 🎉

@marionebl Thank you!


change list to tuple

but for a website handling many requests this can add up very quickly

This code is in a config reader, true? I'd expect it to run only on startup or reload, not on every request. I see no reason to try optimizing it, especially at the expense of clarity.
Also, if someone cares about maximum runtime performance, they're not using Bottle, they're using (e.g.) Falcon. Bottle's beauty is in its ease of use and its code simplicity, not in its blazing speed.

if you show me bottleneck

Yes, I agree with you 100%. The right way to optimize is to profile first, and then make targeted changes.
Reasons why it's more important for code to be clear than to be fast:

It almost always doesn't matter in actual production (unless you've profiled and know where to optimize).
Over its lifetime, code costs more to read than to write, so it should be optimized for ease of reading. (And, arguably, a list is easier to read less error prone than a tuple, because (a) [...] is less ambiguous in Python than (...), and (b) tuples of size 1 are prone to errors.
Optimizations are frequently platform specific. Even if you ran dis with every compiles and every version of Python, you wouldn't be future-proof. (One example that comes to mind is string concatenation with +, whose performance varies greatly depending on compiler and version.)
A set is arguably a more appropriate data structure to use here than either a list or a tuple, since sets are designed precisely for membership queries, which is all this code does. I'm not proposing that we use a set--because I think a list is clearer to the reader.

(I know you probably know all of that already, since you're an experienced engineer, but I want to state it here for the benefit of future contributors.)
I came to this PR with an open mind, but I'm becoming convinced that this was an unnecessary change, albeit a small one; possibly even very slightly detrimental.
Finally, I want to add: Overall, I very highly appreciate the efforts you're putting into this project, which is near and dear to my heart. Thank you for all your recent improvements. I'd just like to challenge open source contributors in general to step back and think at a higher level about the changes they propose. My goal (like yours) is to have the best possible code out there. Thanks again!

but for a website handling many requests this can add up very quickly

This code is in a config reader, true? I'd expect it to run only on startup or reload, not on every request. I see no reason to try optimizing it, especially at the expense of clarity.
Also, if someone cares about maximum runtime performance, they're not using Bottle, they're using (e.g.) Falcon. Bottle's beauty is in its ease of use and its code simplicity, not in its blazing speed.

if you show me bottleneck

Yes, I agree with you 100%. The right way to optimize is to profile first, and then make targeted changes.
Reasons why it's more important for code to be clear than to be fast:

It almost always doesn't matter in actual production (unless you've profiled and know where to optimize).
Over its lifetime, code costs more to read than to write, so it should be optimized for ease of reading. (And, arguably, a list is easier to read less error prone than a tuple, because (a) [...] is less ambiguous in Python than (...), and (b) tuples of size 1 are prone to errors.
Optimizations are frequently platform specific. Even if you ran dis with every compiles and every version of Python, you wouldn't be future-proof. (One example that comes to mind is string concatenation with +, whose performance varies greatly depending on compiler and version.)
A set is arguably a more appropriate data structure to use here than either a list or a tuple, since sets are designed precisely for membership queries, which is all this code does. I'm not proposing that we use a set--because I think a list is clearer to the reader.

(I know you probably know all of that already, since you're an experienced engineer, but I want to state it here for the benefit of future contributors.)
I came to this PR with an open mind, but I'm becoming convinced that this was an unnecessary change, albeit a small one; possibly even very slightly detrimental.
Finally, I want to add: Overall, I very highly appreciate the efforts you're putting into this project, which is near and dear to my heart. Thank you for all your recent improvements. I'd just like to challenge open source contributors in general to step back and think at a higher level about the changes they propose. My goal (like yours) is to have the best possible code out there. Thanks again!


buttons in sections should be centered

go to the commitment page. scroll to manufacturing section. Button needs to be centered. But its in a content block where the copy is aligned left. Maybe the button needs to be in its own section?  page is https://phase-two-redo--takeda-ihs--hlxsites.hlx.page/drafts/phase-two-redo/commitment

done


WIP: refactoring for GGUF support

closes #60, #49, #32
This is still WIP and not yet for anything yet.
I hope to finish it by Sunday.

[x] Rewrite the conversion script for GGUF support.
[x] Output text-only, vision-only and two-tower models according to the CLI argument.
[x] Allow overriding mean / std values for image processing.
[x] Load GGUF file and infer with it (WIP).
[x] Re-implement the quantization function.
[x] - [ ] Handle memory buffer allocation logic for new text-only and vision-only models.
[ ] Test and upload different CLIP models in new GGUF format.
[ ] Update Python bindings.

I set this ready for review although it will require some tests with different models and fixes in memory allocation for text-only and vision-only model variants.
I'll do tests and make some code polishing over the coming days. Any test and feedback will be much appreciated btw.

I'm preparing the PR for merging later today. Added a shell script for bulk model conversion. Another script will do quantization in bulk. Then uploading models + updating readme and merging.
Python binding will require an update in its automatic model selection as now the smallest model in a repo is a text-only model, but I'll leave it to another PR.

Also updated the Python bindings to work with the new GGUF format and find pre-converted models uploaded to HF.
I think this is good to merge now.

file names are somewhat lenghty now, with "ggml-model" "ggml-text-model" and "ggml-vision-model". feels like the "ggml" here is redundant (.gguf).

yes, it might be {full|text|vision}-model-{ftype}.gguf


Test environment ./packages/jest-environment-node cannot be found.

I have installed jest on docker image of centos 7.
nvm version:0.33.0
node version v8.15.1
npm --version 6.4.1
When run the test it gives error as './packages/jest-environment-node cannot be found error'

jest-environment-node is present in package.json file "devDependencies".
jest-environment-node directory exist in  ./packages/jest-environment-node and node_modules directory.
Also tried command npm install --save-dev jest-environment-node , but same error occurred

#npm install --save-dev jest
#npm run test
[root@5b804881bf21 jest]# npm run test

test@ test /home/jest
jest

â Validation Error:
Test environment ./packages/jest-environment-node cannot be found. Make sure the testEnvironment configuration option points to an existing node module.
Configuration Documentation:
https://jestjs.io/docs/configuration.html
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! test@ test: jest
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the test@ test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-04-09T12_50_01_734Z-debug.log

Please conform to the issue template and provide a minimal repro we can download and investigate


Add new list command to log any activity or note related to specified friend

Hello,
I am starting to dig friends, thanks for creating such tools :)
I wish I could friend recall my_friend_s_nick that would list any activity and note related to the friend.
Sure I can already edit the file and grep the name, but I am afraid that if the list grows a bit, friends with same name collide, whereas a nickname rarely collide at all.
This idea come from ledger reg that just outputs "what happened" in chronological order, with further filtering only after.
Best,

Thanks for the kind words, @MartyLake! And thanks for the suggestion. ❤
Are you aware that you can use the --with flag on friends list activities and friends list notes? Does that get you what you're looking for?
Or is it important that this new command combine both activities and notes together? If so, could you share more about your use case? Thanks!

Thanks for the kind words, @MartyLake! And thanks for the suggestion. ❤
Are you aware that you can use the --with flag on friends list activities and friends list notes? Does that get you what you're looking for?
Or is it important that this new command combine both activities and notes together? If so, could you share more about your use case? Thanks!

Hello @JacobEvelyn  !
The hardest part of using your tool so far is sticking to journaling.
re new command:
I have decided to clearly separate activities for real world interaction, and notes for additional info that may or may not originate from activities (birthdate, place of living, new dog).
I have the feeling that if I use the tool a lot, information about one friend will be scattered around multiple activities and note, and I wonder if I could just get an chronological list of activities and notes related on just one friend.
Maybe this need will never materialize though.
Is it a bit clearer like this ? :)

Hello @JacobEvelyn  !
The hardest part of using your tool so far is sticking to journaling.
re new command:
I have decided to clearly separate activities for real world interaction, and notes for additional info that may or may not originate from activities (birthdate, place of living, new dog).
I have the feeling that if I use the tool a lot, information about one friend will be scattered around multiple activities and note, and I wonder if I could just get an chronological list of activities and notes related on just one friend.
Maybe this need will never materialize though.
Is it a bit clearer like this ? :)

Hey @MartyLake ! Thanks for the explanation.
It's definitely possible to add a new list command that combines activities and notes in its output. Internally this codebase uses the word "event" to refer to both activities and notes, so this could be list events. I'm open to other names though!
Would you be interested in writing a PR for this feature?

Hey @MartyLake ! Thanks for the explanation.
It's definitely possible to add a new list command that combines activities and notes in its output. Internally this codebase uses the word "event" to refer to both activities and notes, so this could be list events. I'm open to other names though!
Would you be interested in writing a PR for this feature?

Hello Jacob,
After a while, I realize that I don't use my computer enough for this tool to be reliable for me.
Also, I have no experience in Ruby programming.
In all honesty, I will just close this feature request.
Thanks for taking the time to read and answer my messages, and all the best !


chore: fix compatbility with poetry 1.8.*

Command poetry check --lock failed with error Error: Invalid source "pypi" referenced in dependencies. for poetry 1.8.0 or higher if the pypi was used as source for some dependency, but not explicitly declared pyproject.toml.
I'm removing source = "pypi", because it will be the default repository anyway.

Fixed within #50


Setting credentials for gem sources via environment variable does not work if domain name contains dash

Hi,
I have a gem host at gems.with-dash.com, and I cannot set the credentials using an environment variable (as explained here) because dashes are not allowed in environment variable names (it would have to be BUNDLE_GEMS__WITH-DASH__COM, which is invalid at least in bash).
Am I missing something here? I'd be willing to put together a pull request that converts the dash to an underscore in this case. Would this be worthwhile?

I can set an env var with a dash fine using Ruby, maybe you just need to escape the dash?

env 'foo-bar=bar' env => foo-bar=bar

You can also always use bundle config to set the configuration

Thanks for your quick reply, and for the solutions!
I'd like to set the environment variable using export, and I don't see any way to achieve that when the variable name includes a dash. It just seemed like an oversight to me.
You can close this if it is out of scope, as there are alternative ways I can work around this problem. Thanks again!

Yeah, sorry, does kinda feel out of scope to me :/

Sure, no worries. If it hasn't come up until now, it's most probably of an edge case.

Hi, sorry to bother again, I will quickly outline my use case, maybe you re-evaluate your stance:
I'm using Gitlab CI for our internal gems. Gitlab CI has a feature which allows you to specify so-called secret environment variables, which are injected in the CI run. We have several internal gems that reference each other, and using any method other than the environment variable approach would force me to include the credentials of our internal gem host in the repository, which I'd like to avoid.
I have raised this issue with Gitlab, but they are unwilling / not able to allow environment variables with dashes, as these are invalid in bash (and they use bash to set these environment variables).
Thanks again for your attention!


Permissions appear to be ignored

The problem
I tested a quick example where I have a GATT service with 1 characteristic, where it has READ/WRITE properties, but does not have read permissions (just to test)
I was able to read/write without any issues to that characteristic.
This test stemmed from trying out {read,write}_encryption_required permissions but being able to manipulate the field without pairing the devices.
Reproduction

import logging
import asyncio
from datetime import datetime

from typing import Any, Dict

from bless import (  # type: ignore
        BlessServer,
        BlessGATTCharacteristic,
        GATTCharacteristicProperties,
        GATTAttributePermissions
)

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(name=__name__)

def write_request(
        characteristic: BlessGATTCharacteristic,
        value: Any,
        **kwargs
        ):

    logger.debug(f"Writing {value} to {characteristic}")
    characteristic.value = value
    logger.debug(f"Char value set to {characteristic.value}")

def read_request(
        characteristic: BlessGATTCharacteristic,
        **kwargs
        ) -> bytearray:
    logger.debug(f"Reading {characteristic.value}")
    return characteristic.value

async def run(loop):
    # Instantiate the server
    gatt: Dict = {
        "0000ffe0-0000-1000-8000-00805f9b34fb": {
            "61FF12BB-3ED8-46E5-B4F9-D64E2FEC021B": {
                "Properties": (GATTCharacteristicProperties.read |
                                GATTCharacteristicProperties.write),
                "Permissions": (
                                # GATTAttributePermissions.read_encryption_required |
                                GATTAttributePermissions.write_encryption_required),
                "Value": None
            },
        }
    }

    server_name = "MY_NOTIFY_SERVER"

    server = BlessServer(name=server_name, loop=loop, name_overwrite=True, )
    server.write_request_func = write_request  # not required if we don't have a write characteristic
    server.read_request_func = read_request

    await server.add_gatt(gatt)
    await server.start()

    while True:
        await asyncio.sleep(0.5)

    logger.debug("Stopping")
    await server.stop()

loop = asyncio.get_event_loop()
loop.run_until_complete(run(loop))

Expected behavior
I should not be able to write unless the devices are paired and should not be able to read at all
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Raspbian GNU/Linux 11 (bullseye)

Additional context

hey @legraphista
I'm also dealing with the same issue; apparently, the permissions (GATTAttributePermissions) are not used at all on the bluezdbus backend, used by 'linux'; they're only used on macOS and windows. If you run the sample code you provided on a non-linux machine, it should work as expected. I think the characteristic permissions on the bluezdbus backend are determined by the properties (GATTCharacteristicProperties)  (@maintainers, correct me if I'm wrong).
What worked for me was changing the property GATTCharacteristicProperties.write to
GATTCharacteristicProperties.authenticated_signed_writes. In this case, you'll need to bond with the device first to be able to write to the characteristic. Not sure about 'protected reads'...

@jcapona You have saved me endless agony. ❤

Since permissions are ignored on Linux, how would you require bonding before reading a characteristic on a Raspberry (Raspbian OS lite 64 bit).