Update all dependency versions. Use PSC 0.10.

A bug appeared when running tests after upgrading - a Tuple (String Unit) will render with an extra space on the end. I don't know how to fix, and I don't know if this test failed before upgrade. Shouldn't hurt to keep this behavior, though.

Thanks!
Looks like the space is new, but it doesn't seem like a problem to me :smile:

@garyb I discovered why that space was added. It appears this change in purescript-tuples did it: https://github.com/purescript/purescript-tuples/pull/23/files
It adds a Unit to the end of a tuple7. Can you or @natefaubion explain why Unit was forced into the position of the last element of a nested tuple?

Ah right, the tupleN stuff has been changed to be "extensible", meaning the operators like at2 now work regardless of the "length" of the nested tuple - previously there were varieties like get2of3, get2of4, etc. which made working with nested tuples a pain if you needed to grow or shrink them. The cost is that now the last item in a nested tuple is always Unit, similar to the need for Nil at the end of a List.

So, if I want to make Tuple an instance of a type class, I need to also make Unit an instance of my type class? It seems a bit weird. @garyb, if you think it's right, then I can accept it.
I'm trying to think about how to write a special case to handle the last element of a nested tuple. Can we pattern-match to know we're at the end and can handle that special-case? There's no data constructor for Unit, so I believe we can't. I believe this is the difference between List and nested Tuple - List has Cons and Nil constructors, but Tuple only has Tuple constructor.

Another way of looking at it, is the Tuple3 type now means "At least 3", it's Tuple a (Tuple b (Tuple c ...))

Oops, didn't see your message before I posted that ^.
This is purely due to a use of a Tuple.Nested representation somewhere, if it was just using Tuples "normally" the extra Unit would be unnecessary, but also the nested combinators would not work. The Tuple.Nested stuff is just synonyms: https://github.com/purescript/purescript-tuples/blob/master/src/Data/Tuple/Nested.purs#L33-L42
So no, the instances for Tuple don't have to involve Unit or anything, it's still just represented as data a b = Tuple a b.

That's a very helpful way of looking at it, thanks.
I feel this CSS library should move away from Data.Tuple.Nested's "tupleN" functions. I'm looking at usages here and we're taking advantage of extensible tuples. Instead, should we manually create these Tuples to ensure they don't end in Unit? Or move away from Tuples and use List instead?

I think creating them manually would be better than using a List, since at least they have fixed arity this way... but I'm not sure if that matters in the way things are currently represented anyway. I think there's plenty of improvements this library could potentially have!


Crash in timeout handler when calling phantom.exit()

phantomjs: 1.9.7, downloaded official binary
Actually I've two dumps. They were produced by running phantomjs using netsniff.js on web page; second dump is below.
Operating system: Linux
                  0.0.0 Linux 2.6.26-2-vserver-amd64 #1 SMP Sun Mar 4 23:39:41 UTC 2012 x86_64
CPU: amd64
     family 6 model 26 stepping 5
     4 CPUs

Crash reason:  SIGSEGV
Crash address: 0xe0

Thread 0 (crashed)
 0  phantomjs!NetworkAccessManager::handleTimeout [networkaccessmanager.cpp : 283 + 0x8]
    rbx = 0x00007fff8f88a9c0   r12 = 0x000000000460f1b0
    r13 = 0x00007fff8f88a9b0   r14 = 0x00007fff8f88a9e0
    r15 = 0x0000000004414ca0   rip = 0x000000000042c2ef
    rsp = 0x00007fff8f88a940   rbp = 0x000000000460f1d8
    Found by: given as instruction pointer in context
 1  phantomjs!QMetaObject::activate [qobject.cpp : 3539 + 0x1e]
    rbx = 0x000000000000000e   r12 = 0x00007fff8f88b201
    r13 = 0x000000000046c540   r14 = 0x0000000000000009
    r15 = 0x000000000460cf50   rip = 0x0000000001cf6ef8
    rsp = 0x00007fff8f88aa50   rbp = 0x0000000004414ca0
    Found by: call frame info
 2  phantomjs!QObject::event [qobject.cpp : 1156 + 0x8]
    rbx = 0x000000000460f1b0   r12 = 0x00007fff8f88b270
    r13 = 0x00000000041f5ab0   r14 = 0x000000000006c3bc
    r15 = 0x00007fff8f88b270   rip = 0x0000000001cefbc4
    rsp = 0x00007fff8f88ab70   rbp = 0x000000000460f1b0
    Found by: call frame info
 3  phantomjs!QApplicationPrivate::notify_helper [qapplication.cpp : 4562 + 0xc]
    rbx = 0x00007fff8f88b4f0   r12 = 0x00007fff8f88b270
    r13 = 0x00000000041f5ab0   r14 = 0x000000000006c3bc
    r15 = 0x00007fff8f88b270   rip = 0x00000000015decaf
    rsp = 0x00007fff8f88ad10   rbp = 0x000000000460f1b0
    Found by: call frame info
 4  phantomjs!QApplication::notify [qapplication.cpp : 4423 + 0x17]
    rbx = 0x00007fff8f88b4f0   r12 = 0x00007fff8f88b270
    r13 = 0x00007fff8f88b4f0   r14 = 0x000000000006c3bc
    r15 = 0x00007fff8f88b270   rip = 0x00000000015e793b
    rsp = 0x00007fff8f88ad40   rbp = 0x000000000460f1b0
    Found by: call frame info
 5  phantomjs!QCoreApplication::notifyInternal [qcoreapplication.cpp : 946 + 0x2]
    rbx = 0x00000000041f31c0   r12 = 0x00007fff8f88b270
    r13 = 0x00007fff8f88b4f0   r14 = 0x000000000006c3bc
    r15 = 0x00007fff8f88b270   rip = 0x0000000001cde3d4
    rsp = 0x00007fff8f88b210   rbp = 0x000000000460f1b0
    Found by: call frame info
 6  phantomjs!QTimerInfoList::activateTimers [qcoreapplication.h : 231 + 0x14]
    rbx = 0x00000000041f7898   r12 = 0x0000000000000000
    r13 = 0x0000000000000001   r14 = 0x000000000006c3bc
    r15 = 0x00007fff8f88b270   rip = 0x0000000001d07ecd
    rsp = 0x00007fff8f88b260   rbp = 0x00000000005d207b
    Found by: call frame info
 7  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 941 + 0x7]
    rbx = 0x0000000000000000   r12 = 0x00007fff8f88b340
    r13 = 0x00000000041f2560   r14 = 0x0000000000000001
    r15 = 0x00000000041f32d8   rip = 0x0000000001d080e0
    rsp = 0x00007fff8f88b2f0   rbp = 0x00000000041f7030
    Found by: call frame info
 8  phantomjs!QEventDispatcherQPA::processEvents [qeventdispatcher_qpa.cpp : 246 + 0x4]
    rbx = 0x0000000004419b90   r12 = 0x0000000000000000
    r13 = 0x00000000041f2560   r14 = 0x00007fff8f88b380
    r15 = 0x00000000041f32d8   rip = 0x000000000163a6a4
    rsp = 0x00007fff8f88b340   rbp = 0x00000000041f7030
    Found by: call frame info
 9  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
    rbx = 0x0000000004419b90   r12 = 0x00007fff8f88b410
    r13 = 0x00007fff8f88b420   r14 = 0x00000000041f3230
    r15 = 0x00000000041f32d8   rip = 0x0000000001cdd4b5
    rsp = 0x00007fff8f88b380   rbp = 0x00007fff8f88b3c0
    Found by: call frame info
10  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
    rbx = 0x0000000004419b90   r12 = 0x00007fff8f88b410
    r13 = 0x00007fff8f88b420   r14 = 0x00000000041f3230
    r15 = 0x00000000041f32d8   rip = 0x0000000001cdd918
    rsp = 0x00007fff8f88b3b0   rbp = 0x00007fff8f88b4f0
    Found by: call frame info
11  phantomjs!QCoreApplication::exec [qcoreapplication.cpp : 1218 + 0x4]
    rbx = 0x00000000041f31c0   r12 = 0x00007fff8f88b4f0
    r13 = 0x00007fff8f88b6a8   r14 = 0x00007fff8f88b460
    r15 = 0x0000000000000000   rip = 0x0000000001cdf7cb
    rsp = 0x00007fff8f88b410   rbp = 0x00000000041f31c0
    Found by: call frame info
12  phantomjs!main [main.cpp : 121 + 0x4]
    rbx = 0x0000000004242c20   r12 = 0x00007fff8f88b4f0
    r13 = 0x00007fff8f88b6a8   r14 = 0x00007fff8f88b460
    r15 = 0x0000000000000000   rip = 0x0000000000427cb2
    rsp = 0x00007fff8f88b450   rbp = 0x00007fff8f88b688
    Found by: call frame info
13  libc-2.11.3.so + 0x1ec8c
    rbx = 0x0000000000000000   r12 = 0x0000000000407cc0
    r13 = 0x00007fff8f88b680   r14 = 0x0000000000000000
    r15 = 0x0000000000000000   rip = 0x00007f1630a7cc8d
    rsp = 0x00007fff8f88b5b0   rbp = 0x0000000000000000
    Found by: call frame info
14  phantomjs + 0x27a5f
    rip = 0x0000000000427a60   rsp = 0x00007fff8f88b5d0
    Found by: stack scanning

Thread 1
 0  libc-2.11.3.so + 0xa0c5d
    rbx = 0x00007f162fc66d80   r12 = 0x00000000ffffffff
    r13 = 0x0000000000000000   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00007f1630afec5d
    rsp = 0x00007f162fc66c50   rbp = 0x00007f162fc66d00
    Found by: given as instruction pointer in context
 1  libc-2.11.3.so + 0xa0acf
    rip = 0x00007f1630afead0   rsp = 0x00007f162fc66c60
    rbp = 0x00007f162fc66d00
    Found by: stack scanning
 2  phantomjs + 0x18b5c6f
    rip = 0x0000000001cb5c70   rsp = 0x00007f162fc66c68
    rbp = 0x00007f162fc66d00
    Found by: stack scanning
 3  ld-2.11.3.so + 0x9009
    rip = 0x00007f163205a00a   rsp = 0x00007f162fc66ca0
    rbp = 0x00007f162fc66d00
    Found by: stack scanning
 4  ld-2.11.3.so + 0x982b
    rip = 0x00007f163205a82c   rsp = 0x00007f162fc66ce0
    rbp = 0x00007f162fc66d00
    Found by: stack scanning
 5  libpthread-2.11.3.so + 0xefef
    rip = 0x00007f163157aff0   rsp = 0x00007f162fc66cf8
    rbp = 0x00007f162fc66d00
    Found by: stack scanning
 6  ld-2.11.3.so + 0x9af1
    rip = 0x00007f163205aaf2   rsp = 0x00007f162fc66d00
    rbp = 0x00007f162fc66d00
    Found by: stack scanning
 7  libc-2.11.3.so + 0xe217
    rip = 0x00007f1630a6c218   rsp = 0x00007f162fc66d48
    Found by: stack scanning
 8  libpthread-2.11.3.so + 0xb295
    rip = 0x00007f1631577296   rsp = 0x00007f162fc66e18
    Found by: stack scanning
 9  phantomjs!WTF::TCMalloc_PageHeap::scavengerThread [FastMalloc.cpp : 2499 + 0x4]
    rip = 0x00000000004dda2e   rsp = 0x00007f162fc66e40
    Found by: stack scanning
10  phantomjs!WTF::TCMalloc_PageHeap::runScavengerThread [FastMalloc.cpp : 1618 + 0x4]
    rbx = 0x0000000000000000   r12 = 0x00007f163157cfc0
    r13 = 0x0000000000000000   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00000000004ddc99
    rsp = 0x00007f162fc66ec0   rbp = 0x0000000000000000
    Found by: call frame info
11  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f163157cfc0
    r13 = 0x0000000000000000   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00007f16315728ca
    rsp = 0x00007f162fc66ed0   rbp = 0x0000000000000000
    Found by: call frame info
12  libpthread-2.11.3.so + 0x10fbf
    rip = 0x00007f163157cfc0   rsp = 0x00007f162fc66f78
    Found by: stack scanning
13  libc-2.11.3.so + 0xcfb6c
    rip = 0x00007f1630b2db6d   rsp = 0x00007f162fc66fe0
    Found by: stack scanning

Thread 2
 0  libc-2.11.3.so + 0xc93e3
    rbx = 0x0000000000000000   r12 = 0x00007f162f465da0
    r13 = 0x0000000000000009   r14 = 0x00000000043bf2f8
    r15 = 0x00000000043bf590   rip = 0x00007f1630b273e3
    rsp = 0x00007f162f465b70   rbp = 0x00000000043bf140
    Found by: given as instruction pointer in context
 1  phantomjs!qt_safe_select [qcore_unix.cpp : 83 + 0x15]
    rip = 0x0000000001d06327   rsp = 0x00007f162f465b80
    Found by: stack scanning
 2  phantomjs!QEventDispatcherUNIXPrivate::doSelect [qeventdispatcher_unix.cpp : 223 + 0xd]
    rbx = 0x0000000004236b80   r12 = 0x00007f162f465da0
    r13 = 0x00000000043bf140   r14 = 0x0000000000000000
    r15 = 0x00000000043bf590   rip = 0x0000000001d075e7
    rsp = 0x00007f162f465c10   rbp = 0x00000000043bf140
    Found by: call frame info
 3  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 937 + 0x4]
    rbx = 0x0000000004236b80   r12 = 0x00007f162f465da0
    r13 = 0x0000000004242570   r14 = 0x0000000000000001
    r15 = 0x0000000004232fa8   rip = 0x0000000001d08092
    rsp = 0x00007f162f465d50   rbp = 0x00000000043bf140
    Found by: call frame info
 4  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
    rbx = 0x0000000004236b80   r12 = 0x00007f162f465e30
    r13 = 0x00007f162f465e40   r14 = 0x00000000041f3230
    r15 = 0x0000000004232fa8   rip = 0x0000000001cdd4b5
    rsp = 0x00007f162f465da0   rbp = 0x00007f162f465de0
    Found by: call frame info
 5  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
    rbx = 0x0000000004236b80   r12 = 0x00007f162f465e30
    r13 = 0x00007f162f465e40   r14 = 0x00000000041f3230
    r15 = 0x0000000004232fa8   rip = 0x0000000001cdd918
    rsp = 0x00007f162f465dd0   rbp = 0x00007fff8f88b4f0
    Found by: call frame info
 6  phantomjs!QThread::exec [qthread.cpp : 542 + 0xc]
    rbx = 0x0000000004232f20   r12 = 0x0000000004232fa8
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x0000000001bdfdf6
    rsp = 0x00007f162f465e30   rbp = 0x0000000004232fa8
    Found by: call frame info
 7  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x0000000004232fa8   r12 = 0x000000000422af80
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f162f465e80   rbp = 0x0000000004233b20
    Found by: call frame info
 8  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007fff8f88a9d0
    r13 = 0x00007f162f466700   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00007f16315728ca
    rsp = 0x00007f162f465ed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 3
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x0000000004421ac0   r12 = 0x0000000000000039
    r13 = 0x00007f15ed3a9de0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f16315777d2
    rsp = 0x00007f15ed3a9d68   rbp = 0x0000000004421de0
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f15ed3a9dc0
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044219e0   r12 = 0x0000000004421a69
    r13 = 0x0000000000000002   r14 = 0x00007f15e8047e30
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f15ed3a9e40   rbp = 0x0000000004421de0
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x0000000004422f20   r12 = 0x0000000004421f80
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f15ed3a9e80   rbp = 0x0000000004421de0
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f15edba95b0
    r13 = 0x00007f15ed3aa700   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00007f16315728ca
    rsp = 0x00007f15ed3a9ed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 4
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x0000000004421ac0   r12 = 0x0000000000000032
    r13 = 0x00007f15e7ffede0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f16315777d2
    rsp = 0x00007f15e7ffed68   rbp = 0x00007f15e8022e60
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f15e7ffedc0
    rbp = 0x00007f15e8022e60
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044219e0   r12 = 0x0000000004421a69
    r13 = 0x0000000000000002   r14 = 0x00007f15e80e80b0
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f15e7ffee40   rbp = 0x00007f15e8022e60
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x0000000004434960   r12 = 0x00007f15e8001850
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f15e7ffee80   rbp = 0x00007f15e8022e60
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f15edba95b0
    r13 = 0x00007f15e7fff700   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00007f16315728ca
    rsp = 0x00007f15e7ffeed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 5
 0  libpthread-2.11.3.so + 0xb1fc
    rbx = 0x0000000004496250   r12 = 0x004189374bc6a7ef
    r13 = 0xffffffffffffffff   r14 = 0x0000000004496278
    r15 = 0x0000000004496990   rip = 0x00007f16315771fc
    rsp = 0x00007f15e77fdd38   rbp = 0x00007f15ec507990
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 86 + 0xa]
    rip = 0x0000000001be39f5   rsp = 0x00007f15e77fdd60
    rbp = 0x00007f15ec507990
    Found by: stack scanning
 2  phantomjs!WTF::ThreadCondition::timedWait [ThreadingQt.cpp : 253 + 0x12]
    rbx = 0x00007f15ec507988   r12 = 0x0000000000000004
    r13 = 0x00007f15ec507988   r14 = 0x00007f15ec507990
    r15 = 0x00007f15e77fde40   rip = 0x00000000004e70ea
    rsp = 0x00007f15e77fdde0   rbp = 0x00007f15ec507990
    Found by: call frame info
 3  phantomjs!WTF::MessageQueue<WebCore::LocalStorageTask>::waitForMessage [MessageQueue.h : 137 + 0x12]
    rbx = 0x0000000000000004   r12 = 0x0000000000000004
    r13 = 0x00007f15ec507988   r14 = 0x00007f15ec507990
    r15 = 0x00007f15e77fde40   rip = 0x0000000001185269
    rsp = 0x00007f15e77fde00   rbp = 0x00007f15ec507998
    Found by: call frame info
 4  phantomjs!WebCore::LocalStorageThread::threadEntryPoint [LocalStorageThread.cpp : 68 + 0xa]
    rbx = 0x00007f15e620ea00   r12 = 0x00000000044e2fb0
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x0000000001185493
    rsp = 0x00007f15e77fde40   rbp = 0x00007f15ec507988
    Found by: call frame info
 5  phantomjs!WTF::ThreadPrivate::run [ThreadingQt.cpp : 66 + 0x6]
    rbx = 0x00000000044b3f00   r12 = 0x00000000044e2fb0
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00000000004e68fb
    rsp = 0x00007f15e77fde70   rbp = 0x00000000044b3f00
    Found by: call frame info
 6  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x00000000044e2ef8   r12 = 0x00000000044e2fb0
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f15e77fde80   rbp = 0x00000000044b3f00
    Found by: call frame info
 7  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007fff8f889b40
    r13 = 0x00007f15e77fe700   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00007f16315728ca
    rsp = 0x00007f15e77fded0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 6
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x0000000004421ac0   r12 = 0x0000000000000036
    r13 = 0x00007f15e6e8bde0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f16315777d2
    rsp = 0x00007f15e6e8bd68   rbp = 0x00007f15e804d6d0
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f15e6e8bdc0
    rbp = 0x00007f15e804d6d0
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044219e0   r12 = 0x0000000004421a69
    r13 = 0x0000000000000002   r14 = 0x0000000004e4f0b0
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f15e6e8be40   rbp = 0x00007f15e804d6d0
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x00000000045d9bf0   r12 = 0x00007f15e804dac0
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f15e6e8be80   rbp = 0x00007f15e804d6d0
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f15edba95b0
    r13 = 0x00007f15e6e8c700   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00007f16315728ca
    rsp = 0x00007f15e6e8bed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 7
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x0000000004421ac0   r12 = 0x0000000000000034
    r13 = 0x00007f15e51f0de0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f16315777d2
    rsp = 0x00007f15e51f0d68   rbp = 0x0000000004d960e0
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f15e51f0dc0
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044219e0   r12 = 0x0000000004421a69
    r13 = 0x0000000000000002   r14 = 0x00007f15e80c3f60
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f15e51f0e40   rbp = 0x0000000004d960e0
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x0000000004d967f0   r12 = 0x0000000004d96410
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f15e51f0e80   rbp = 0x0000000004d960e0
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f15edba95b0
    r13 = 0x00007f15e51f1700   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00007f16315728ca
    rsp = 0x00007f15e51f0ed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 8
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x0000000004421ac0   r12 = 0x0000000000000038
    r13 = 0x00007f15e49efde0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f16315777d2
    rsp = 0x00007f15e49efd68   rbp = 0x00007f15e806b990
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f15e49efdc0
    rbp = 0x00007f15e806b990
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044219e0   r12 = 0x0000000004421a69
    r13 = 0x0000000000000002   r14 = 0x0000000004e6c090
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f15e49efe40   rbp = 0x00007f15e806b990
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x0000000004d8d650   r12 = 0x00007f15e806bbf0
    r13 = 0x0000000000000001   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f15e49efe80   rbp = 0x00007f15e806b990
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f15edba95b0
    r13 = 0x00007f15e49f0700   r14 = 0x00007f163226f040
    r15 = 0x0000000000000003   rip = 0x00007f16315728ca
    rsp = 0x00007f15e49efed0   rbp = 0x0000000000000000
    Found by: call frame info

Loaded modules:
0x00400000 - 0x0268dfff  phantomjs  ???  (main)
0x7f15ec00e000 - 0x7f15ec0a8fff  DejaVuSans.ttf  ???
0x7f15ec581000 - 0x7f15ec786fff  libnss_dns-2.11.3.so  ???
0x7f15ec787000 - 0x7f15ec993fff  libnss_files-2.11.3.so  ???
0x7f15ec994000 - 0x7f15ecba7fff  libresolv-2.11.3.so  ???
0x7f15ee3de000 - 0x7f15ee3f1fff  n019003l.pfb  ???
0x7f162fc68000 - 0x7f162febefff  libssl.so.0.9.8  ???
0x7f162febf000 - 0x7f163025bfff  libcrypto.so.0.9.8  ???
0x7f1630260000 - 0x7f163061efff  locale-archive  ???
0x7f163061f000 - 0x7f1630846fff  libexpat.so.1.5.2  ???
0x7f1630847000 - 0x7f1630a5dfff  libz.so.<IP_ADDRESS>  ???
0x7f1630a5e000 - 0x7f1630dbafff  libc-2.11.3.so  ???
0x7f1630dc0000 - 0x7f1630fd5fff  libgcc_s.so.1  ???
0x7f1630fd6000 - 0x7f1631257fff  libm-2.11.3.so  ???
0x7f1631258000 - 0x7f1631556fff  libstdc++.so.6.0.13  ???
0x7f163156c000 - 0x7f1631783fff  libpthread-2.11.3.so  ???
0x7f1631788000 - 0x7f163198ffff  librt-2.11.3.so  ???
0x7f1631990000 - 0x7f1631b93fff  libdl-2.11.3.so  ???
0x7f1631b94000 - 0x7f1631dc8fff  libfontconfig.so.1.4.4  ???
0x7f1631dc9000 - 0x7f1632050fff  libfreetype.so.6.6.0  ???
0x7f1632051000 - 0x7f163206efff  ld-2.11.3.so  ???
0x7f163224b000 - 0x7f1632253fff  945677eb7aeaf62f1d50efc3fb3ec7d8-le64.cache-3  ???
0x7f1632254000 - 0x7f1632257fff  6eb3985aa4124903f6ff08ba781cd364-le64.cache-3  ???
0x7f1632258000 - 0x7f163225bfff  6d41288fd70b0be22e8c3a91e032eec0-le64.cache-3  ???
0x7f1632263000 - 0x7f163226bfff  e13b20fdb08344e0e664864cc2ede53d-le64.cache-3  ???
0x7fff8f9ff000 - 0x7fff8f9fffff  linux-gate.so  ???

Second dump:
Operating system: Linux
                  0.0.0 Linux 2.6.26-2-vserver-amd64 #1 SMP Sun Mar 4 23:39:41 UTC 2012 x86_64
CPU: amd64
     family 6 model 26 stepping 5
     4 CPUs

Crash reason:  SIGSEGV
Crash address: 0x0

Thread 0 (crashed)
 0  0x0
    rbx = 0x00007fffd59f6160   r12 = 0x000000000468fcb0
    r13 = 0x00007fffd59f6150   r14 = 0x00007fffd59f6180
    r15 = 0x00000000044ebd50   rip = 0x0000000000000000
    rsp = 0x00007fffd59f60d8   rbp = 0x000000000468fcd8
    Found by: given as instruction pointer in context
 1  phantomjs!NetworkAccessManager::handleTimeout [networkaccessmanager.cpp : 283 + 0xd]
    rip = 0x000000000042c2f5   rsp = 0x00007fffd59f60e0
    Found by: stack scanning
 2  phantomjs!QMetaObject::activate [qobject.cpp : 3539 + 0x1e]
    rbx = 0x000000000000000e   r12 = 0x00007fffd59f6a01
    r13 = 0x000000000046c540   r14 = 0x0000000000000009
    r15 = 0x0000000004690b30   rip = 0x0000000001cf6ef8
    rsp = 0x00007fffd59f61f0   rbp = 0x00000000044ebd50
    Found by: call frame info
 3  phantomjs!QObject::event [qobject.cpp : 1156 + 0x8]
    rbx = 0x000000000468fcb0   r12 = 0x00007fffd59f6a10
    r13 = 0x00000000042ccab0   r14 = 0x00000000000a9152
    r15 = 0x00007fffd59f6a10   rip = 0x0000000001cefbc4
    rsp = 0x00007fffd59f6310   rbp = 0x000000000468fcb0
    Found by: call frame info
 4  phantomjs!QApplicationPrivate::notify_helper [qapplication.cpp : 4562 + 0xc]
    rbx = 0x00007fffd59f6c90   r12 = 0x00007fffd59f6a10
    r13 = 0x00000000042ccab0   r14 = 0x00000000000a9152
    r15 = 0x00007fffd59f6a10   rip = 0x00000000015decaf
    rsp = 0x00007fffd59f64b0   rbp = 0x000000000468fcb0
    Found by: call frame info
 5  phantomjs!QApplication::notify [qapplication.cpp : 4423 + 0x17]
    rbx = 0x00007fffd59f6c90   r12 = 0x00007fffd59f6a10
    r13 = 0x00007fffd59f6c90   r14 = 0x00000000000a9152
    r15 = 0x00007fffd59f6a10   rip = 0x00000000015e793b
    rsp = 0x00007fffd59f64e0   rbp = 0x000000000468fcb0
    Found by: call frame info
 6  phantomjs!QCoreApplication::notifyInternal [qcoreapplication.cpp : 946 + 0x2]
    rbx = 0x00000000042ca1c0   r12 = 0x00007fffd59f6a10
    r13 = 0x00007fffd59f6c90   r14 = 0x00000000000a9152
    r15 = 0x00007fffd59f6a10   rip = 0x0000000001cde3d4
    rsp = 0x00007fffd59f69b0   rbp = 0x000000000468fcb0
    Found by: call frame info
 7  phantomjs!QTimerInfoList::activateTimers [qcoreapplication.h : 231 + 0x14]
    rbx = 0x00000000042ce898   r12 = 0x0000000000000001
    r13 = 0x0000000000000001   r14 = 0x00000000000a9152
    r15 = 0x00007fffd59f6a10   rip = 0x0000000001d07ecd
    rsp = 0x00007fffd59f6a00   rbp = 0x00000000005d2656
    Found by: call frame info
 8  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 941 + 0x7]
    rbx = 0x0000000000000000   r12 = 0x00007fffd59f6ae0
    r13 = 0x00000000042c9560   r14 = 0x0000000000000001
    r15 = 0x00000000042ca2d8   rip = 0x0000000001d080e0
    rsp = 0x00007fffd59f6a90   rbp = 0x00000000042ce030
    Found by: call frame info
 9  phantomjs!QEventDispatcherQPA::processEvents [qeventdispatcher_qpa.cpp : 246 + 0x4]
    rbx = 0x00000000044f0d60   r12 = 0x0000000000000000
    r13 = 0x00000000042c9560   r14 = 0x00007fffd59f6b20
    r15 = 0x00000000042ca2d8   rip = 0x000000000163a6a4
    rsp = 0x00007fffd59f6ae0   rbp = 0x00000000042ce030
    Found by: call frame info
10  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
    rbx = 0x00000000044f0d60   r12 = 0x00007fffd59f6bb0
    r13 = 0x00007fffd59f6bc0   r14 = 0x00000000042ca230
    r15 = 0x00000000042ca2d8   rip = 0x0000000001cdd4b5
    rsp = 0x00007fffd59f6b20   rbp = 0x00007fffd59f6b60
    Found by: call frame info
11  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
    rbx = 0x00000000044f0d60   r12 = 0x00007fffd59f6bb0
    r13 = 0x00007fffd59f6bc0   r14 = 0x00000000042ca230
    r15 = 0x00000000042ca2d8   rip = 0x0000000001cdd918
    rsp = 0x00007fffd59f6b50   rbp = 0x00007fffd59f6c90
    Found by: call frame info
12  phantomjs!QCoreApplication::exec [qcoreapplication.cpp : 1218 + 0x4]
    rbx = 0x00000000042ca1c0   r12 = 0x00007fffd59f6c90
    r13 = 0x00007fffd59f6e48   r14 = 0x00007fffd59f6c00
    r15 = 0x0000000000000000   rip = 0x0000000001cdf7cb
    rsp = 0x00007fffd59f6bb0   rbp = 0x00000000042ca1c0
    Found by: call frame info
13  phantomjs!main [main.cpp : 121 + 0x4]
    rbx = 0x0000000004319dd0   r12 = 0x00007fffd59f6c90
    r13 = 0x00007fffd59f6e48   r14 = 0x00007fffd59f6c00
    r15 = 0x0000000000000000   rip = 0x0000000000427cb2
    rsp = 0x00007fffd59f6bf0   rbp = 0x00007fffd59f6e28
    Found by: call frame info
14  libc-2.11.3.so + 0x1ec8c
    rbx = 0x0000000000000000   r12 = 0x0000000000407cc0
    r13 = 0x00007fffd59f6e20   r14 = 0x0000000000000000
    r15 = 0x0000000000000000   rip = 0x00007f1f586dac8d
    rsp = 0x00007fffd59f6d50   rbp = 0x0000000000000000
    Found by: call frame info
15  phantomjs + 0x27a5f
    rip = 0x0000000000427a60   rsp = 0x00007fffd59f6d70
    Found by: stack scanning

Thread 1
 0  libc-2.11.3.so + 0xa0c5d
    rbx = 0x00007f1f578c4d80   r12 = 0x00000000ffffffff
    r13 = 0x00007f1f1611c0c0   r14 = 0x0000000002a7e1a0
    r15 = 0x0000000002a7e170   rip = 0x00007f1f5875cc5d
    rsp = 0x00007f1f578c4c50   rbp = 0x00007f1f578c4d00
    Found by: given as instruction pointer in context
 1  libc-2.11.3.so + 0xa0acf
    rip = 0x00007f1f5875cad0   rsp = 0x00007f1f578c4c60
    rbp = 0x00007f1f578c4d00
    Found by: stack scanning
 2  phantomjs + 0x18b5c6f
    rip = 0x0000000001cb5c70   rsp = 0x00007f1f578c4c68
    rbp = 0x00007f1f578c4d00
    Found by: stack scanning
 3  ld-2.11.3.so + 0x9009
    rip = 0x00007f1f59cb800a   rsp = 0x00007f1f578c4ca0
    rbp = 0x00007f1f578c4d00
    Found by: stack scanning
 4  ld-2.11.3.so + 0x982b
    rip = 0x00007f1f59cb882c   rsp = 0x00007f1f578c4ce0
    rbp = 0x00007f1f578c4d00
    Found by: stack scanning
 5  libpthread-2.11.3.so + 0xefef
    rip = 0x00007f1f591d8ff0   rsp = 0x00007f1f578c4cf8
    rbp = 0x00007f1f578c4d00
    Found by: stack scanning
 6  ld-2.11.3.so + 0x9af1
    rip = 0x00007f1f59cb8af2   rsp = 0x00007f1f578c4d00
    rbp = 0x00007f1f578c4d00
    Found by: stack scanning
 7  libc-2.11.3.so + 0xe217
    rip = 0x00007f1f586ca218   rsp = 0x00007f1f578c4d48
    Found by: stack scanning
 8  libpthread-2.11.3.so + 0xb295
    rip = 0x00007f1f591d5296   rsp = 0x00007f1f578c4e18
    Found by: stack scanning
 9  phantomjs!WTF::TCMalloc_PageHeap::scavengerThread [FastMalloc.cpp : 2499 + 0x4]
    rip = 0x00000000004dda2e   rsp = 0x00007f1f578c4e40
    Found by: stack scanning
10  phantomjs!WTF::TCMalloc_PageHeap::runScavengerThread [FastMalloc.cpp : 1618 + 0x4]
    rbx = 0x0000000000000000   r12 = 0x00007f1f591dafc0
    r13 = 0x0000000000000000   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00000000004ddc99
    rsp = 0x00007f1f578c4ec0   rbp = 0x0000000000000000
    Found by: call frame info
11  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f1f591dafc0
    r13 = 0x0000000000000000   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00007f1f591d08ca
    rsp = 0x00007f1f578c4ed0   rbp = 0x0000000000000000
    Found by: call frame info
12  libpthread-2.11.3.so + 0x10fbf
    rip = 0x00007f1f591dafc0   rsp = 0x00007f1f578c4f78
    Found by: stack scanning
13  libc-2.11.3.so + 0xcfb6c
    rip = 0x00007f1f5878bb6d   rsp = 0x00007f1f578c4fe0
    Found by: stack scanning

Thread 2
 0  libc-2.11.3.so + 0xc93e3
    rbx = 0x0000000000000000   r12 = 0x00007f1f570c3da0
    r13 = 0x0000000000000009   r14 = 0x00000000044a0318
    r15 = 0x00000000044a05b0   rip = 0x00007f1f587853e3
    rsp = 0x00007f1f570c3b70   rbp = 0x00000000044a0160
    Found by: given as instruction pointer in context
 1  phantomjs!qt_safe_select [qcore_unix.cpp : 83 + 0x15]
    rip = 0x0000000001d06327   rsp = 0x00007f1f570c3b80
    Found by: stack scanning
 2  phantomjs!QEventDispatcherUNIXPrivate::doSelect [qeventdispatcher_unix.cpp : 223 + 0xd]
    rbx = 0x000000000430a7f0   r12 = 0x00007f1f570c3da0
    r13 = 0x00000000044a0160   r14 = 0x0000000000000000
    r15 = 0x00000000044a05b0   rip = 0x0000000001d075e7
    rsp = 0x00007f1f570c3c10   rbp = 0x00000000044a0160
    Found by: call frame info
 3  phantomjs!QEventDispatcherUNIX::processEvents [qeventdispatcher_unix.cpp : 937 + 0x4]
    rbx = 0x000000000430a7f0   r12 = 0x00007f1f570c3da0
    r13 = 0x0000000004309810   r14 = 0x0000000000000001
    r15 = 0x0000000004318658   rip = 0x0000000001d08092
    rsp = 0x00007f1f570c3d50   rbp = 0x00000000044a0160
    Found by: call frame info
 4  phantomjs!QEventLoop::processEvents [qeventloop.cpp : 149 + 0x1]
    rbx = 0x000000000430a7f0   r12 = 0x00007f1f570c3e30
    r13 = 0x00007f1f570c3e40   r14 = 0x00000000042ca230
    r15 = 0x0000000004318658   rip = 0x0000000001cdd4b5
    rsp = 0x00007f1f570c3da0   rbp = 0x00007f1f570c3de0
    Found by: call frame info
 5  phantomjs!QEventLoop::exec [qeventloop.cpp : 200 + 0x4]
    rbx = 0x000000000430a7f0   r12 = 0x00007f1f570c3e30
    r13 = 0x00007f1f570c3e40   r14 = 0x00000000042ca230
    r15 = 0x0000000004318658   rip = 0x0000000001cdd918
    rsp = 0x00007f1f570c3dd0   rbp = 0x00007fffd59f6c90
    Found by: call frame info
 6  phantomjs!QThread::exec [qthread.cpp : 542 + 0xc]
    rbx = 0x00000000043185d0   r12 = 0x0000000004318658
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001bdfdf6
    rsp = 0x00007f1f570c3e30   rbp = 0x0000000004318658
    Found by: call frame info
 7  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x0000000004318658   r12 = 0x000000000430e9a0
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f1f570c3e80   rbp = 0x000000000430acd0
    Found by: call frame info
 8  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007fffd59f6170
    r13 = 0x00007f1f570c4700   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00007f1f591d08ca
    rsp = 0x00007f1f570c3ed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 3
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x00000000044b0a60   r12 = 0x0000000000000031
    r13 = 0x00007f1f14ff5de0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f1f591d57d2
    rsp = 0x00007f1f14ff5d68   rbp = 0x00000000044b0d90
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f1f14ff5dc0
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044b0980   r12 = 0x00000000044b0a09
    r13 = 0x0000000000000002   r14 = 0x000000000466afa0
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f1f14ff5e40   rbp = 0x00000000044b0d90
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x0000000004523550   r12 = 0x00000000044b0f30
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f1f14ff5e80   rbp = 0x00000000044b0d90
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f1f157f55b0
    r13 = 0x00007f1f14ff6700   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00007f1f591d08ca
    rsp = 0x00007f1f14ff5ed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 4
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x00000000044b0a60   r12 = 0x000000000000002d
    r13 = 0x00007f1f141cbde0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f1f591d57d2
    rsp = 0x00007f1f141cbd68   rbp = 0x000000000453e670
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f1f141cbdc0
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044b0980   r12 = 0x00000000044b0a09
    r13 = 0x0000000000000002   r14 = 0x00007f1f0c23f980
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f1f141cbe40   rbp = 0x000000000453e670
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x00000000044fdf20   r12 = 0x0000000004500b90
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f1f141cbe80   rbp = 0x000000000453e670
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f1f157f55b0
    r13 = 0x00007f1f141cc700   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00007f1f591d08ca
    rsp = 0x00007f1f141cbed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 5
 0  libpthread-2.11.3.so + 0xb1fc
    rbx = 0x0000000004558d60   r12 = 0x004189374bc6a7ef
    r13 = 0xffffffffffffffff   r14 = 0x0000000004558d88
    r15 = 0x00000000045594a0   rip = 0x00007f1f591d51fc
    rsp = 0x00007f1f135d2d38   rbp = 0x00007f1f1392b990
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 86 + 0xa]
    rip = 0x0000000001be39f5   rsp = 0x00007f1f135d2d60
    rbp = 0x00007f1f1392b990
    Found by: stack scanning
 2  phantomjs!WTF::ThreadCondition::timedWait [ThreadingQt.cpp : 253 + 0x12]
    rbx = 0x00007f1f1392b988   r12 = 0x0000000000000005
    r13 = 0x00007f1f1392b988   r14 = 0x00007f1f1392b990
    r15 = 0x00007f1f135d2e40   rip = 0x00000000004e70ea
    rsp = 0x00007f1f135d2de0   rbp = 0x00007f1f1392b990
    Found by: call frame info
 3  phantomjs!WTF::MessageQueue<WebCore::LocalStorageTask>::waitForMessage [MessageQueue.h : 137 + 0x12]
    rbx = 0x0000000000000005   r12 = 0x0000000000000005
    r13 = 0x00007f1f1392b988   r14 = 0x00007f1f1392b990
    r15 = 0x00007f1f135d2e40   rip = 0x0000000001185269
    rsp = 0x00007f1f135d2e00   rbp = 0x00007f1f1392b998
    Found by: call frame info
 4  phantomjs!WebCore::LocalStorageThread::threadEntryPoint [LocalStorageThread.cpp : 68 + 0xa]
    rbx = 0x00007f1f10daca28   r12 = 0x00000000045aca70
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001185493
    rsp = 0x00007f1f135d2e40   rbp = 0x00007f1f1392b988
    Found by: call frame info
 5  phantomjs!WTF::ThreadPrivate::run [ThreadingQt.cpp : 66 + 0x6]
    rbx = 0x0000000004590510   r12 = 0x00000000045aca70
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00000000004e68fb
    rsp = 0x00007f1f135d2e70   rbp = 0x0000000004590510
    Found by: call frame info
 6  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x00000000045ac9b8   r12 = 0x00000000045aca70
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f1f135d2e80   rbp = 0x0000000004590510
    Found by: call frame info
 7  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007fffd59f52e0
    r13 = 0x00007f1f135d3700   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00007f1f591d08ca
    rsp = 0x00007f1f135d2ed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 6
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x00000000044b0a60   r12 = 0x0000000000000030
    r13 = 0x00007f1f12cf8de0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f1f591d57d2
    rsp = 0x00007f1f12cf8d68   rbp = 0x00000000044facf0
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f1f12cf8dc0
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044b0980   r12 = 0x00000000044b0a09
    r13 = 0x0000000000000002   r14 = 0x000000000466e1f0
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f1f12cf8e40   rbp = 0x00000000044facf0
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x00000000045bc830   r12 = 0x00000000045bb930
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f1f12cf8e80   rbp = 0x00000000044facf0
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f1f157f55b0
    r13 = 0x00007f1f12cf9700   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00007f1f591d08ca
    rsp = 0x00007f1f12cf8ed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 7
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x00000000044b0a60   r12 = 0x000000000000002b
    r13 = 0x00007f1f124f7de0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f1f591d57d2
    rsp = 0x00007f1f124f7d68   rbp = 0x00007f1f0c048860
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f1f124f7dc0
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044b0980   r12 = 0x00000000044b0a09
    r13 = 0x0000000000000002   r14 = 0x00007f1f0c3a1410
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f1f124f7e40   rbp = 0x00007f1f0c048860
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x00000000045c0190   r12 = 0x00007f1f0c048c50
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f1f124f7e80   rbp = 0x00007f1f0c048860
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f1f157f55b0
    r13 = 0x00007f1f124f8700   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00007f1f591d08ca
    rsp = 0x00007f1f124f7ed0   rbp = 0x0000000000000000
    Found by: call frame info

Thread 8
 0  libpthread-2.11.3.so + 0xb7d2
    rbx = 0x00000000044b0a60   r12 = 0x000000000000002c
    r13 = 0x00007f1f11adbde0   r14 = 0xffffffffffffff92
    r15 = 0x0000000000000000   rip = 0x00007f1f591d57d2
    rsp = 0x00007f1f11adbd68   rbp = 0x00007f1f0c052010
    Found by: given as instruction pointer in context
 1  phantomjs!QWaitCondition::wait [qwaitcondition_unix.cpp : 84 + 0x7]
    rip = 0x0000000001be39d7   rsp = 0x00007f1f11adbdc0
    Found by: stack scanning
 2  phantomjs!QThreadPoolThread::run [qthreadpool.cpp : 141 + 0x1d]
    rbx = 0x00000000044b0980   r12 = 0x00000000044b0a09
    r13 = 0x0000000000000002   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001bd783d
    rsp = 0x00007f1f11adbe40   rbp = 0x00007f1f0c052010
    Found by: call frame info
 3  phantomjs!QThreadPrivate::start [qthread_unix.cpp : 338 + 0x9]
    rbx = 0x00000000046e4630   r12 = 0x00007f1f0c052390
    r13 = 0x0000000000000001   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x0000000001be2cc2
    rsp = 0x00007f1f11adbe80   rbp = 0x00007f1f0c052010
    Found by: call frame info
 4  libpthread-2.11.3.so + 0x68c9
    rbx = 0x0000000000000000   r12 = 0x00007f1f157f55b0
    r13 = 0x00007f1f11adc700   r14 = 0x00007f1f59ecd040
    r15 = 0x0000000000000003   rip = 0x00007f1f591d08ca
    rsp = 0x00007f1f11adbed0   rbp = 0x0000000000000000
    Found by: call frame info

Loaded modules:
0x00400000 - 0x0268dfff  phantomjs  ???  (main)
0x7f1f11c56000 - 0x7f1f11cf0fff  DejaVuSans.ttf  ???
0x7f1f141cd000 - 0x7f1f143d2fff  libnss_dns-2.11.3.so  ???
0x7f1f143d3000 - 0x7f1f145dffff  libnss_files-2.11.3.so  ???
0x7f1f145e0000 - 0x7f1f147f3fff  libresolv-2.11.3.so  ???
0x7f1f1603c000 - 0x7f1f1604ffff  n019003l.pfb  ???
0x7f1f578c6000 - 0x7f1f57b1cfff  libssl.so.0.9.8  ???
0x7f1f57b1d000 - 0x7f1f57eb9fff  libcrypto.so.0.9.8  ???
0x7f1f57ebe000 - 0x7f1f5827cfff  locale-archive  ???
0x7f1f5827d000 - 0x7f1f584a4fff  libexpat.so.1.5.2  ???
0x7f1f584a5000 - 0x7f1f586bbfff  libz.so.<IP_ADDRESS>  ???
0x7f1f586bc000 - 0x7f1f58a18fff  libc-2.11.3.so  ???
0x7f1f58a1e000 - 0x7f1f58c33fff  libgcc_s.so.1  ???
0x7f1f58c34000 - 0x7f1f58eb5fff  libm-2.11.3.so  ???
0x7f1f58eb6000 - 0x7f1f591b4fff  libstdc++.so.6.0.13  ???
0x7f1f591ca000 - 0x7f1f593e1fff  libpthread-2.11.3.so  ???
0x7f1f593e6000 - 0x7f1f595edfff  librt-2.11.3.so  ???
0x7f1f595ee000 - 0x7f1f597f1fff  libdl-2.11.3.so  ???
0x7f1f597f2000 - 0x7f1f59a26fff  libfontconfig.so.1.4.4  ???
0x7f1f59a27000 - 0x7f1f59caefff  libfreetype.so.6.6.0  ???
0x7f1f59caf000 - 0x7f1f59cccfff  ld-2.11.3.so  ???
0x7f1f59ea9000 - 0x7f1f59eb1fff  945677eb7aeaf62f1d50efc3fb3ec7d8-le64.cache-3  ???
0x7f1f59eb2000 - 0x7f1f59eb5fff  6eb3985aa4124903f6ff08ba781cd364-le64.cache-3  ???
0x7f1f59eb6000 - 0x7f1f59eb9fff  6d41288fd70b0be22e8c3a91e032eec0-le64.cache-3  ???
0x7f1f59ec1000 - 0x7f1f59ec9fff  e13b20fdb08344e0e664864cc2ede53d-le64.cache-3  ???
0x7fffd59ff000 - 0x7fffd59fffff  linux-gate.so  ???

Hi, mfn
I got the same behavior, and seems that this is not a bug but a normal behavior of the phantomjs.
Here is a code to implement exact what you want:
page = require('webpage').create();
page.settings.resourceTimeout = 1000;
page.onResourceTimeout = function(e) {
	page.openError = "Unable to connect to '" + e.url
		+ "'. Message: Error code " + e.errorCode + ". " + e.errorString;
}
page.open(phantom.args[0], function (status) {
    if (status !== "success")
	{
		system.stderr.writeLine(page.openError);
		phantom.exit(1);
	}

	phantom.exit(0);
});

This appears to be fixed in 2.0.


Menu: Add badges for # of active events

To make it easier to see what's going on.
https://material-ui.com/demos/badges/

Number of active events are now being displayed.


copy button for composer install copies dollar sign

Hi
this is super minor, but in every project I start, I use the package! And every time I copy the composer command from the docs, using the button... and have to come back and copy it without the $ sign manually. Would it be possible to adapt the docs?
thanks in advance!!
Lotje

Sure thing! Would you mind submitting a PR?

Of course!


"Malformed class file" reported for valid class

A warning is logged during compilation of Java classes when a local variable is annotated with @NotNull.
Expected Behavior
There should be no warning message since the class is valid.
Current Behavior
When a local variable is annotated with "org.jetbrains.annotations.NotNull", a warning is written during compilation:
Malformed class file [.../ClassName.class] found on compile classpath, which means that this class will cause a compile error if referenced in a source file. Gradle 5.0 will no longer allow malformed classes on compile classpath.
The head of the stacktrace looks like this:
:myProject:compileJavajava.lang.ArrayIndexOutOfBoundsException: 12
	at org.objectweb.asm.ClassReader.readLabel(Unknown Source)
	at org.objectweb.asm.ClassReader.a(Unknown Source)
	at org.objectweb.asm.ClassReader.a(Unknown Source)
	at org.objectweb.asm.ClassReader.b(Unknown Source)
	at org.objectweb.asm.ClassReader.accept(Unknown Source)
	at org.objectweb.asm.ClassReader.accept(Unknown Source)
	at org.gradle.api.internal.tasks.compile.ApiClassExtractor.extractApiClassFrom(ApiClassExtractor.java:80)
	at org.gradle.api.internal.changedetection.state.AbiExtractingClasspathContentHasher.hashClassBytes(AbiExtractingClasspathContentHasher.java:41)
	at org.gradle.api.internal.changedetection.state.AbiExtractingClasspathContentHasher.appendContent(AbiExtractingClasspathContentHasher.java:53)
	at org.gradle.api.internal.changedetection.state.DefaultClasspathEntryHasher.hashZipEntry(DefaultClasspathEntryHasher.java:113)
	at org.gradle.api.internal.changedetection.state.DefaultClasspathEntryHasher.hashJar(DefaultClasspathEntryHasher.java:77)
	at org.gradle.api.internal.changedetection.state.DefaultClasspathEntryHasher.hash(DefaultClasspathEntryHasher.java:59)
	at org.gradle.api.internal.changedetection.state.CachingClasspathEntryHasher.hash(CachingClasspathEntryHasher.java:46)
	at org.gradle.api.internal.changedetection.state.DefaultCompileClasspathSnapshotter.normaliseFileElement(DefaultCompileClasspathSnapshotter.java:78)
	at org.gradle.api.internal.changedetection.state.AbstractFileCollectionSnapshotter$FileCollectionVisitorImpl.visitCollection(AbstractFileCollectionSnapshotter.java:144)
	at org.gradle.api.internal.file.AbstractFileCollection.visitRootElements(AbstractFileCollection.java:234)
	at org.gradle.api.internal.file.CompositeFileCollection.visitRootElements(CompositeFileCollection.java:185)
...

Steps to Reproduce (for bugs)
Add a class with a line like
@NotNull final String str = new String("");

The warning is not displayed when there is no constructor used, e.g. str = ""; works as expected.
Your Environment
Gradle Wrapper 3.5, Oracle Java 1.8.0_121 (x64), Arch Linux

Thanks for reporting. Do you see the same issue with 3.4?

Yes, it also happens with 3.4.1.

Can you please provide a small reproducible example on GitHub?

Hm. Interesting. I cannot reproduce it in a minimal example. It seems that there is more to it than just the annotation and the constructor.
I will come back to you when I have a working minimal example.

I am sorry, but I am unable to pinpoint the problem in a reasonable amount of time. Uploading the original source is not an option because of legal issues.
Until now I experimented with Generics, implementation of an interface and adding inter-module dependencies. Sometimes the error disappears while other changes have no effect.
One possibility might be the usage of the Spring Boot plugin or its dependencies, those bring another version of ASM into play.
Since our problem could be solved by just removing the annotation of the variable, this bug may be closed as unreproducable.

Does the exception happen while analysing one of your classes? If so, it would be in a downstream project depending on that class. Can you confirm that? In general we should be able to read any valid byte code back in. So there might be several causes:

an ASM bug
some tool in your build generating invalid bytecode
some upstream dependency containing invalid bytecode (but then the error message should point at that dependency class, not at one of your classes)

This could be related to http://stackoverflow.com/a/26496604/2137015.

some tool in your build generating invalid bytecode

This seems to be the solution. We detected other issues and were able to pinpoint those to the automatic generation of assertions for @Nullable/@Notnull by IntelliJ IDEA.

Thanks for verifying, closing this as "working as designed" then :) Can you please paste a link to the IntelliJ bug once you've opened one?

IMO there is no need for a bug report, since the behavior of IntelliJ can be disabled in the options.

Well, it's still a bug for those users that activate it :)

Looks like I've hit the same problem: getting 'malformed class' errors with Gradle 3.5 for classes annotated with IntelliJ's @Nullable/@NotNull. Removing annotations fixes the warnings. The problem is that I don't use IntelliJ for compiling and there are no assertions generated in the bytecode (checked with disassembler).
To reproduce:
git clone git@github.com:SumoLogic/epigraph.git
cd epigraph
gradle -c settings-bootstrap.gradle clean :epigraph-java-data-processing:build

any ideas?

might be related to http://forge.ow2.org/tracker/?func=detail&atid=100023&aid=317778&group_id=23

Same problem here with Gradle 4.2.1 when using the @Nullable and @NonNullannotations of Eclipse. Altough we use them all over our projects, but gradle only complains about two class files (out of thousands).


Project failed at Test Case9_16

Summary
The output is not in chronological order
Description
Serve Event at 10.225 is only printed out after a Done Event at 10.753. I highly doubt its the event comparator's fault?
Screenshots (if any):
Insert Images here if necessary

hi! do you have an event before serving and after wait (aka Pending event)? if yes, then i think the error might be there

could check where did you return the new serve event from the pending class (if any)
trace to code to see if it runs in chronological order!

Try tracing ur code to check if it runs in chronological order. Else u can do system.out.println statements to see where ur events move. Hope this helps u debug!

Thanks for the help! The issue came from the pending classes!


Labels seem to only work when the attribute is set before the title

I'm not seeing labels work with Confluence hosted by Atlassian and 0.12.0 of the publisher. According to the asciidoctor documentation attributes can be defined in the header or the body, but I only see labels set when they're defined in the header.
This doesn't work
= Some page

:keywords: test

Blah

Whereas this does:
:keywords: test

= Some page

Blah

It’s working for me, but that might be because of some specifics. To start with, I used version 0.15.0 of the publisher.
My header looks like this:
:doctype: book
= [WIP] Comparison of API Gateways for K8s: Overlap with Service Mesh
:title: [WIP] Comparison of API Gateways for K8s
:keywords: kubernetes, api-gateway, service-mesh, microservice

(…) but that might be because of some specifics. (…)

It was a very specific combination indeed; after a small change to the title, I lost the labels :( I also moved the attribute to above the title … this is very fragile!

Hi @rtyler thank you for using the Confluence Publisher. I checked your two examples with the current version 0.15.0 and both work. Since version 0.12.0, the AsciiDoc libraries have been upgraded, maybe that makes a difference regarding the handling of the keywords attribute (the Confluence Publisher itself does not apply any special handling other than reading the corresponding attribute from AsciiDoc).
Could you please upgrade to the latest version 0.15.0 and try again? Thank you!

Hi @vovtz, which version of the Confluence Publisher are you using? If not the latest one, could you please try upgrading to version 0.15.0.
And what do you mean with "a small change to the title"? What did you change? The title itself? Or the position of the keywords attribute within the AsciiDoc file?


Supabase realtime sync after back online

I'm working on an offline feature for my app using the Supabase plugin with persist and realtime.
When the app goes offline for a period and then reconnects, it can receive realtime broadcasts after back online, but any updates that occurred during the offline period are lost. So there will be inconsistent records until they are updated again and broadcast by realtime.
I think Legend doesn't check network connection so I have to manually refresh data after back online. But I've been unable to find a reliable method to manually sync data from Supabase(similar to an initial load). I've tried using syncState(Contacts$).sync() with isLoaded, but as mentioned in other issues, it doesn't work and I think it's possible related to syncState.

The retry option in syncedSupabase should enable that to happen automatically. And the retrySync option enables persisting the changes and retrying after reload: https://legendapp.com/open-source/state/v3/sync/persist-sync/#synced
It does not currently check network connection though, so it just keeps retrying and failing until it eventually works. I'm planning to change that soon so it stops retrying while offline and starts again when coming back online. But at least it works :)

I keep retry to {infinite: true} and retrySync to true all the time, but I think they are intended for retrying to save local changes to remote, not fetching?
In my case, only remote data changes during the app offline. When the app gets back online, the realtime reconnects instantly. However it won't actively check if it missed some updates, it just assumes there is no remote update during the offline period. Supabase realtime also doesn't guarantee that it knows it missed some broadcasts.
I understand that implementing network check for the legend-state takes time, so I'm trying to do a manual refresh myself. Right now I've found syncState(obs).reset() works for the purpose. I think it only resets the state to initial and clears persistence, then others do the sync. So is there a way to trigger a complete refresh without resetting the state? Just fetch all the remote data and replace the local data.
BTW, I'm curious why reset() works well but when I replace it with clearPersist(), it still gives undefined.

What version are you using? I'm testing it and in the latest alpha.41 I'm seeing that when coming back online, realtime reconnects instantly and updates with all the changes. And also, calling syncState(obs).sync() updates as expected.
retrySync is for retrying saving, but retry is for everything so it should retry selects as well.
Maybe an update to the supabase js library might improve things too? If not can you share some of your code, or ideally a sandbox I could test?

I just updated from 39 to 42 and syncState(obs).sync() works great now. Thanks!
I think realtime does miss update during offline, I'll create a sandbox repo and come back later.

I'm getting the same issue with deleting. Lots of empty todos popping up, it's extremely buggy at the moment.

Can you share your repo so I can test it?
Are you using changesSince: 'lastSync'? That requires soft deletes. If not then I would think that Supabase's realtime would reconnect and see the deletes. Or is it not?

@jmeistrich Sure thing. I've created a minimal reproduction based on the Supabase example from your recent blog post.
You can see my changes in this commit. Perhaps I'm doing something very stupid but I can't figure it out.
Steps to reproduce:

Create a single todo
Click the delete icon next to it

You'll see a new empty todo pop up like in @NekodRider's screenshot.
If you add a few todos, mark them as done, then click "clear completed todos" at the bottom, it starts to get pretty wacky.

Thanks, I repro'd it and I'm working on it.

This should be fixed in beta.7. There were a couple bugs:

A special case for empty objects that was making it not remove fields with symbolDelete
Sometimes not loading metadata tables (which include the changes that need retrying) early enough in AsyncStorage on web (which uses LocalStorage and isn't really async)

Is it working better for you now?

@jmeistrich Looks like this resolves the issue with the empty todos, thanks! Soft deleting works smoothly now.
I'm still seeing the issue where mobile (iOS native in Expo Go) doesn't pick up on new todos after being offline (same repo). Is there something I can do here?

Hmm ok I'll check that tomorrow. I'd been testing on expo web.

I think that may be a Supabase bug. If I add this logging to SupaLegend.ts I sometimes see a status of CHANNEL_ERROR with error undefined.
supabase
    .channel(`LS_TEST`)
    .on(
        'postgres_changes',
        {
            event: '*',
            table: 'todos',
            schema: 'public',
        },
        (payload) => {
            console.log('1payload', payload);
        },
    )
    .subscribe((status, error) => {
        console.log('1status', status);
        console.log('1error', error);
    });

I'm not sure what causes it but I seem to have a pattern that reproduces it:

Quit app if already open
Open app, realtime connects
Go offline and back online
Reload app in dev tools
Realtime errors forever even with more reloads, until app is fully restarted

Can you try adding that in yours and see what happens for you?

@jmeistrich Yeah, I'm seeing a lot of this error when I reconnect:
1status CHANNEL_ERROR
1error undefined
1status CHANNEL_ERROR
1error undefined
1status CHANNEL_ERROR
1error undefined
1status CHANNEL_ERROR
1error undefined


Add main field for package.json

I'm using web pack to import styles using this style guide. Something I've noticed in other sass node modules is that setting the "main" field in package.json will allow you to import using the absolute package name. I tested this locally and with this change and some typical web pack config I can import styles like this:
@import '@fermyon/styleguide';

Signed-off-by: Justin Pflueger<EMAIL_ADDRESS>

Oops. Parcel does not like this but webpack tolerates it. Let me do some digging.

Having a hard time finding a way to do this that is compatible with parceljs. There is another pure-SASS approach that helps resolve assets inside this package, I'll push a different PR for that.

In this repo the main build target would ideally be docs/index.html in order to build the design.fermyon.dev site.
Is there a way to include this repo as a package over on the prototype app, and add the main field there within that projects' package.json Webpack setup?
Or can it only consume this fermyon-styleguide package if the main is pointing to the SASS ?

From what I can tell with Parcel, there doesn't seem to be obvious support for modules that are specifically stylesheets. Parcel seems to enforce that package.json#main or package.json#source must either be html or js files. I think that we should probably set both fields to be docs/index.html. I'll open another PR with that suggested change.
There's another issue I found when consuming the stylesheets. scss/fermyon-responsive.scss uses a relative url for ../image/avatar.png which fails in Parcel for me because relative paths are expected to be relative to the target's root directory. Easy fix is to add a variable to allow a consumer to override the base path. I'll include this change in the other PR as well.


fix(Empty state): accessibility defect

Contributes to #4033
Element with "img" role has no label or an empty label in empty state components
What did you change?
Used the existing illustrationDescription prop and set as the aria-label attribute of the SVGs used in Empty States component.
How did you test and verify your work?
Verified in the storyboard using IBM Equal Access Accessibility Checker.

I have read the DCO document and I hereby sign the DCO.


Adding support for python topology to executor, spi, scheduler

Added support for python topology to executor.
Added default config value for sandbox binary location for python heron instance (st_pyheron_instance), which will be packaged to heron-code.tar.gz, when python topology is supported.
Renamed topology_jar_file argument in executor to topology_bin_file.
Fixed style for heron executor

Please refer to #1201 for the meaning of SANDBOX_PYHERON_INSTANCE_BINARY.

Looks good to me. Please address my comments and we should be good to go.

#1204 has just been merged. Please first merge with master and change to use log module under heron/common/src/python/utils. You can refer to heron-explorer to see how to config and use this log module.

I think we can resolve conflict and merge this. As for https://github.com/twitter/heron/issues/1216, let's open a separate PR.

👍 If @objmagic is good with this, let us merge this.


sshrd iOS13

If i want to ramdisk iOS 13 i need link ipsw ios13 or .shsh ios13 or link ipsw 15.6.1 compatible all iOS 11-15?
Thank you brother for your support

use the ios 13 ipsw, should be the same version you are using on the device


chore: Bump version

chore: Bump version

We changed the branch name, so we closed this PR and resubmitted #34.


Need a map to replace Atlas

Description

Atlas sucks

Thoughts on Saltern?

Could be OK if someone wanted to maintain a Nyano version of it.

Could be OK if someone wanted to maintain a Nyano version of it.

Willing to modify Saltern to fit Nyano's needs when I'm not busy


can't close red error screen on real android device

I wan't to change debug settings, but red screen don't disappears.
More over, I can't do anything on device, because red screen shows over all applications.

The back button should dismiss the redbox -- have you tried that or does it still not go away?

@facebook-github-bot close


kivyMd recipe

It would be nice if you could write a recipe to be used by p4a, so if you use python3 it still continue working.
Python 4 android recipes

requirements = kivy==master,git+https://github.com/HeaTTheatR/KivyMD.git


ONNX support for LightGBM models

Is there a plan to support ONNX as an output format for LightGBM models?

@karthikv2k Probably not, GBDT has mostly nothing to do with tensor programming, logical (boolean) tensors for computational graphs are not appropriate (both in speed and efficiency) versus the current implementation of prediction.
Unless someone generates a converter from tree ensembles to neural network / computational graph.

@Laurae2 Thanks for your prompt response. I am looking for a standard way to export LightGBM models into a language agnostic format. This will allow us to build production ML inferencing systems that can take this format as input. For example, CoreML provides a way to convert XGBoost models to their open CoreML protobuf based spec. I see there is a link to JPMML in the readme to convert LightGBM into PMML format but JPMML has the viral AGPL licensing.

I just realized there is a PMML convertor in pmml/pmml.py . It is good to have CoreML support too similar to XGBoost and CatBoost . I think I can work on it.

@karthikv2k Thanks.
unfortunately, the pmml support is broken now due to the missing of categorical feature support.

@wxchan @StrikerRUS what is your thoughts about CoreML support ?

@guolinke I've never hear about CoreML before this issue, because I'm far away from Apple world.

I think I can work on it.

However, if @karthikv2k have time and interest in developing it, then it's good and valuable enhancement for LightGBM.

@karthikv2k Any news?
Guys from ONNX have added support for LightGBM (only GBDT mode): https://github.com/onnx/onnxmltools/pull/52.

AFAIK ML.NET uses LightGBM internally and supports ONNX export.

I used xgboost to coreml conversion, the problem is that the inputs for converted mlmodel are so that we should input features separately! (not sure if we can enter features as a single vector).
Can anyone help me in converting lightGBM to coreml?

Closed in favor of being in #2302. We decided to keep all feature requests in one place.
Welcome to contribute this feature! Please re-open this issue (or post a comment if you are not a topic starter) if you are actively working on implementing this feature.

Open PR for adding LightGBM to CoreML: https://github.com/apple/coremltools/pull/254.
It was opened on Oct 4 2018 but still is not merged. Someone with the CoreML knowledge may help to review and push that PR forward.


TypeError: forward() got an unexpected keyword argument 'mask' when training DALL-e through rainbow_dalle notebook

Hi, I received similar issue to one reported in https://github.com/lucidrains/DALLE2-pytorch/issues/167
When running example training through rainbow_dalle notebook I managed to generate a dataset and train VAE, but I received error when attempting to train DALL-e:
TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_19683/156728592.py in <cell line: 2>()
      1 dalle_model_file = "data/rainbow_dalle.model"
      2 if not os.path.exists(dalle_model_file):
----> 3     dalle, loss_history = fit(dalle, opt, None, scheduler,
      4                               (captions_array[train_idx, ...], all_image_codes[train_idx, ...], captions_mask[train_idx, ...]), None, 200, 256,
      5                               dalle_model_file, train_dalle_batch,

/tmp/ipykernel_19683/3286150046.py in fit(model, opt, criterion, scheduler, train_x, train_y, epochs, batch_size, model_file, trainer, n_train_samples)
     14             model.train()
     15             opt.zero_grad()
---> 16             loss = trainer(model, train_x, train_y, rnd_idx[batch_idx:(batch_idx + batch_size)], criterion)
     17             loss.backward()
     18             losses.append(loss.item())

/tmp/ipykernel_19683/2510503843.py in train_dalle_batch(vae, train_data, _, idx, __)
      1 def train_dalle_batch(vae, train_data, _, idx, __):
      2     text, image_codes, mask = train_data
----> 3     loss = dalle(text[idx, ...], image_codes[idx, ...], mask=mask[idx, ...], return_loss=True)
      4     return loss

~/python/lib/python3.9/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
   1128         if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1129                 or _global_forward_hooks or _global_forward_pre_hooks):
...
-> 1130             return forward_call(*input, **kwargs)
   1131         # Do not call functions when jit is used
   1132         full_backward_hooks, non_full_backward_hooks = [], []

TypeError: forward() got an unexpected keyword argument 'mask'

My environment is as follows:
OS: ubuntu 18.04
Python 3.9.13
Torch 1.12.0
torchvision 0.13.0
Have you observed similar issue? What solution could fix it?

Hey, yes, training works now.
Btw, to make a whole example work correctly, I needed to move all_image_code to cpu with all_image_codes = all_image_codes.cpu() before calculating accuracy at the end.
But now everything works. Thanks for the quick fix!

@aalbersk good to hear, and cute corgi!


Linking to windows - no add as link option

:ballot_box_with_check: Review the documentation: https://github.com/oblador/react-native-vector-icons
:ballot_box_with_check: Search for existing issues (including closed ones): https://github.com/oblador/react-native-vector-icons/issues

Environment
OS: windows 10
target platform: windows
Visual Studio Version: Microsoft Visual Studio Community 2019 Version 16.5.4
react-native version: 0.60
react-native-windows version: 0.60
react-native-vector-icons version: 6.6.0

Description
I can't follow the two last steps. There's no drop-down button on add and no "Copy to output directory" option.
:heavy_check_mark: Open your solution in Visual Studio, right click the Assets folder in your solution, click Add Existing.

:heavy_check_mark:  Browse to the node_modules\react-native-vector-icons\Fonts folder, select the required font files
:x: Click the Add drop-down and select Add as Link.

:x: Set Copy To Output Directory property of each font file to Copy if newer

Icons are just a rectangle for me.
Is there an even more manual way of doing it?

Same here, no Add as Link option on VS 2019

Has anyone been able to solve it?

Also need a solution for this!

However, It shouldnt be a strong difference if you add an Asset as a Link or add the file itself. Adding the file to the asset folder doesnt resolve the issue though. Would be good to have some input here on how to link properly.

Same issue here, currently only work if you manual install the font in your device

anyone figured this out?

+1 here, the option is missing and all icons render as a square even when adding the file itself to assets.

https://github.com/oblador/react-native-vector-icons/issues/1237

That worked for me! Thanks @exotexot.
For everyone else, what I did was copy the desired fonts to the assets folder within /windows/project-name.

From there, I entered the project solution, right-clicked on Assets and pressed Add > Existing Item and selected the fonts I copied into /windows/project-name/assets.

It worked on the next build (Both VS and via npx if anyone wants to be sure).

If others can confirm this worked, I'll make a pull request to the project to update this. @capc0 @LeeJiaLe

I can confirm that copying the files into the Assets folder is working

@alexanderblackh copying the files over also worked for me, an update to the docs would be very appreciated! :)

@alexanderblackh copying the files over also worked for me, an update to the docs would be very appreciated! :)
Would also like to note, this only seemed to help w/ default FontAwesome (4?) icons, when I tried to use any FontAwesome5 icons, still shows as unknown font.
@alexanderblackh was this also the case for you, I saw you had FA5 in your folder screenshot. Were you able to get it working?

Sorry for the delay in response. FA5 is added but it's not working, only getting FA4 working.

@alexanderblackh copying the files over also worked for me, an update to the docs would be very appreciated! :)
Would also like to note, this only seemed to help w/ default FontAwesome (4?) icons, when I tried to use any FontAwesome5 icons, still shows as unknown font.
@alexanderblackh was this also the case for you, I saw you had FA5 in your folder screenshot. Were you able to get it working?

Sorry for the delay in response. FA5 is added but it's not working, only getting FA4 working.

same here on RN 0.64

Is there any way to achieve this without using Visual Studio? I tried using Visual Studio 2022, and it has been a mess for me (most of the options you mention seems not to be available, afaik).

yes for me too the same issue. there is no add to existing items option in visual studio 2022

We’ve just released a major new version with significant changes and improvements. If you’re still experiencing this issue after upgrading, please open a new issue with updated details. We're closing all the very old issues to get on top of things. Thanks for your patience!


--enable-hibernation parameter does not work with az vm update

Documentation states that the  --enable-hibernation  can be used with az vm update.
However this does not seem to work:
az vm update -n dev-app-001 -g EXAMPLE-APP-01 --enable-hibernation (BadRequest) Hibernation capability can only be set while creating a new VM. For more information, see https://aka.ms/hibernate-resume/errors.
The error message also includes a dead link.
Can the documentation be updated or (ideally) this feature be enabled for az vm update?

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

ID: 152b549b-d4b3-13e5-081c-c604b6e4d89e
Version Independent ID: 3f79be78-ce75-ad31-304b-bad7d475ec9e
Content: az vm
Content Source: latest/docs-ref-autogen/vm.yml
Service: virtual-machines
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

Compute


feat: expose notExternal option, introduce externalNodeModules option

fix #42

Expose notExternal option for users to control better how to bail out the externalization
Introduce externalNodeModules option (default to true), to allow users to explicitly opt-out the node_modules externalizations for cases like #42

Sure, updated. I wasn't very sure, but yeah probably that would have the better DX


Custom domain

As a user, I want to be able to use my own domain, e.g., www.foobar12345.com, to display my decentralized website.

@jgryffindor was able to make it work. We need to update the backend/frontend.

Closed by #38


Consolidate projects

Will be putting all libs into one package.

Will be putting all libs into one package.

Closed in v0.0.3


Rework stack into a scope tree

Instead of storing variables on a stack, we'll store them in a tree structure. The root node is the root scope, and it's children are all the child scopes.
Overview
Each node is defined with a value that's a pointer to a frame and a pointer to it's parent. Each frame is a hashmap that stores either the variable or a pointer to another hashmap.
node
  - value : *Frame
  - parent : node

When entering a new scope, such as an if block, a for block, or a new func block, we'll add a new scope. Then, when we leave the block, we'll remove the child.
Assigning variables
As we come across variable declaration, we'll check the leaf node's frame relative to our current scope. For example, let's say we're in an if statement inside of a function called calc, then our tree would look like this:
root
  - calc
    - if  # !! we are here !!
    - ... # other ifs or for loops
  - ... # other functions

Case 1: Assigning values to previously defined variables
In this case, the variable exists in the parent or some ancestor's frame. However, we have not seen it before, so we'll need to go searching for it.
$x = 2
if true do
  $x = 3
end

We'll need to search upwards in order to find the item.
// go pseudocode
func (n *Node) Search(label) int {
  if v, ok := n.value.Get(label); ok {
    return v
  }

  return n.parent.Search(label)
}

Case 2: Assigning values to undefined variables
In this case, we're assigning a variable to a label that hasn't previously been defined in this scope. That means this variable is only allowed to live within it's current scope and it's children.
if true do
  $y = 3 # $y has not been seen before
end

This case will add on to the previous. If we get to the top of the tree and we haven't seen the label before, then we can add it to the leaf node and be done with it.

General case steps

Search current node. If it exists, redefine it.
Search parents, if it exists do step 1.
If we search all parents and we find nothing, add it only to the leaf.

Resolving variables
Resolving variables works similar to assigning variables: if it's not in the current leaf, then bounce up until we find it. However if we don't find it at the top of the tree, we'll throw a runtime error.

Done via #3


Replace mapbox geocoding control with maptile geocoding control

Removed Mapbox dependencies by replacing Mapbox Geocoder with MapTiler GeocodingControl, restoring the Geocoding Control functionality Updated package-lock.json dependencies to remove mapbox-gl dependencies and pass precommit hook.
https://docs.maptiler.com/react/maplibre-gl-js/geocoding-control/
Fixes #864

Looks like addresses a both issue #864 and #877! Looks good to me. I'm going to approve and merge.


The presents of error doesn't fail the gulp task

Is there a way to fail the gulp task when there are jscs errors other wise the next gulp task is executed regardless of jscs errors being present.  The only way I see of now is removing the on error noop handler but there you get the ugly errors printed out by jscs itself.
gulp.task('default', function () {
    gulp.src([ 'file.js' ])
        .pipe(jscs())      // enforce style guide
        .pipe(stylish());  // log style errors
});

Any ideas?
Thanks,
Jon

I've found a way to fail the task but it is using jshint.  This is working for me now but doesn't seem like the ideal solution.  Note I'm not acutally using JSHint just using the jshint reporter.
gulp.src([ 'file.js' ])
    .pipe(jscs())
    .on('error', noop)                        // don't stop on error
    .pipe(stylish.combineWithHintResults())   // combine with jshint results
    .pipe(jshint.reporter('jshint-stylish'))
    .pipe(jshint.reporter('fail'));

Seems fine to me. Whats the problem with it?

I guess the problem is the fact that this hack only works when you use jshint as well.

That's correct. PRs are welcome!


plot and line_plot fail with label arguments

Following the most recent update, line_plot, and the new preferred function plot, both now fail when used with "label" arguments, or if used without "color" arguments under very simple circumstances. Minimal coding example:
import pyam
import pandas as pd
Define dataframe:
_mc = "model_c"
_sa = "scen_a"
_sb = "scen_b"
_eco2 = "Emissions|CO2"
_gtc = "Gt C/yr"
_ech4 = "Emissions|CH4"
_mtch4 = "Mt CH4/yr"
_msrvu = ["model", "scenario", "region", "variable", "unit"]
simple_df = pd.DataFrame(
[
[_mc, 1, "World", _eco2, _gtc, 0, 1000, 5000],
[_mc, _sb, "World", _eco2, _gtc, 1, 1000, 5000],
[_mc, _sa, "World", _ech4, _mtch4, 0, 300, 500],
[_mc, _sb, "World", _ech4, _mtch4, 1, 300, 500],
],
columns=_msrvu + [2010, 2030, 2050],
)
simple_df = pyam.IamDataFrame(simple_df)
The following fails:
simple_df.filter(variable=_eco2).plot()
The following works:
simple_df.filter(variable=_eco2).plot(color='scenario')
The following both fail:
simple_df.filter(variable=_eco2).plot(color='scenario', label="sillyString")
simple_df.filter(variable=_eco2).plot(color='scenario', label=["sillyString"])

Thank you for raising this issue, @Rlamboll! It also occurs on my machine, but it works (at least) in the first-steps tutorial, cell [19]...
Might be some update of matplotlib or a corner case with the custom labelling implemented by @gidden a while ago...

I think all the cases on your tutorial have more than 13 lines so don't use legends.

Hi both - just took a look at this now. Is there an existing test or example of how this is expected to work? In general, all non-recognized kwargs are passed directly to the underlying plot functions.
It would also be helpful to get the error logs on these.

Apologies, I created a PR with the fix (#519) but didn't specifically respond here...
The issue was caused by the fact that of the scenario names is an integer, not a string, so str.join(<list of strings>) failed. The quickfix is to map the column names to string before creating the labels.
I briefly thought about whether to require all columns in a timeseries table to be strings, but there are cases where this doesn't make sense. E.g., when querying non-default scenario versions from an IIASA database, the version number is added as an extra column to data, and this should be an integer...
The caveat here is that one could create an IamDataFrame from pandas where some scenarios are named '1' (string) and others are 1 (int), and filtering gives you different results depending on the type of the argument given to df.filter(..). But I think this is a corner case that we can't realistically guard against...

I may have slightly confused issues by including two semi-overlapping issues into one. The second case is actually complaining that it receives two arguments for label - I think you internally generate a label string and append whatever arguments are given to the plot function, without checking for duplicates. When running the above code in the current version of pyam with no numerical scenario names, we still get the following error: "TypeError: PlotAccessor object got multiple values for keyword argument 'label'"

Thanks for clarifying - so your expected outcome from the example above would be the following?
simple_df.plot(label="foo")

Not really, you seem to have a different color in the legend to in the plot (unless there's a hidden duplicate). My preferred response is to have the last-plotted line given that label. I've only used this in practice when plotting something that happens to have a single color, e.g. cell 12 of https://github.com/GranthamImperial/silicone/blob/master/notebooks/00_Introductory_infilling.ipynb,
so arguably in this case (plotting two items simultaneously) you might have both line-colors given the input label in the key.

Well, this is the data given by you in the illustration above... Yes, it's (almost exactly) two times two over-lapping lines.
So for the use case above, how about this?

Yes, I think that's the best output. Might be worth checking that this doesn't duplicate the legend item if you also give it a color argument to ensure that all the lines are identical

Pushed the fix for the second aspect to the PR, explicit label is now possible.
Indeed, if you provide both a label and an explicit color, the item will be shown several times in the legend - but the code is already so elaborate that I will not fix this corner case.


Kestrel + Browser-Sync = No response

When using Krestel with Browser-sync my requests never respond. If I launch IISExpress and proxy the requests it works.
var gulp = require('gulp');
var browserSync = require('browser-sync');
var proxyMiddleware = require('http-proxy-middleware');
var historyApiFallback = require('connect-history-api-fallback');
var path = require('path');
var dnx = require('gulp-dnx');

gulp.task('start', ['web', 'api']);

gulp.task('web', function(done){
  var apiProxy = proxyMiddleware('/api', {
    target: options.baseUrl,
    ws: true,
    changeOrigin: true
  });

  browserSync({
    files: ['wwwroot/index.html'],
    server: {
      baseDir: ['wwwroot'],
      middleware: [ apiProxy, historyApiFallback() ]
    }
  }, done);
});

var options = {
  cwd: path.resolve(path.join(__dirname, '..', '..', 'API')),
  baseUrl: 'http://localhost:5000/',
  restore: false,
  build: false,
  run: true
};

gulp.task('api', dnx('web', options));

Many others have had this issue too:

https://github.com/BrowserSync/browser-sync/issues/905
http://stackoverflow.com/questions/34025282/browser-sync-not-loading-asp-net-5-website-using-proxy

@cesarbs lets move the convo here since its related.

What version of Kestrel are you using?

RC1

I've been having this exact problem and been pulling my hair out trying to fix it.
IT seems like Kestrel in this context is sending as chunked but doesn't seem to send the last 0-length chunk (which would end the data).
Closing kestrel while browserSync is waiting kills the connection and the browser starts trying to use what it did download.

@replete Use WebListener, its a known bug that is fixed already in master but not published

@amcdnl Thanks, I did figure this out on my own in the end.
As an aside, do you personally feel that it is anywhere near a good time for someone to start moving from an (incompelte) RC1 project to RC2?

@replete its not for the light hearted....

most third-party packages don't support it yet
obvs issues like ^^
I think RC2 is gonna have some major changes too so moving target.

@amcdnl Have you tried this with the latest Kestrel from the dev feed?

@cesarbs I have not, I actually dropped browsersync recently too.

@amcdnl I recently had to give up on this (for the time being as well).
Somehow getting webpack with browserSync & Kestrel to play together seems impossible... :(
I'm guessing it's because Kestrel & Node just don't play well together yet??

@MarkPieszak you can use weblistener. Its not just Node, I tried nginx too and had same issue. Its basically anything other than a browser ( proxy in these cases ) receiving the requests. This is claimed to be fixed in latest but have not personally tried.

How do you set up weblistener in .NET core? I see the options for IISExpress & Web (kestrel) but nothing for weblistener.
Oh I'll have to try it again today to see if it's actually fixed!

In Project.json
  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "weblistener": "Microsoft.AspNet.Server.WebListener"
  },

Oh excellent, so it all works with that? That's amazing I'll just use that for the time being then. :)
Thanks @amcdnl

@cesarbs
I'm using RC2 dotnet bits on OS X and have this problem with public dotnet build. Can I somehow help with solving the problem?
Thanks!

@peterblazejewicz I updated Friday and can concur this issue is still present with any type of proxying.

+1 Very noticable

@amcdnl @dmikov If you change proxy_pass http://localhost:5000; to proxy_pass http://<IP_ADDRESS>:5000; does that fix the issue. We think this might be caused by #231.

I've figured out what's wrong. Right now, Kestrel will only listen on IPv4 when you bind to localhost. If you look at the network traffic when reproing this issue, you'll see nging trying to establish an IPv6 connection with Kestrel, failing, waiting for proxy_connect_timeout, then establishing an IPv4 connection and completing the request.
The delay after the IPv6 failure is out of our control. @Tratcher has pointed out to me that this is a known issue with winsock - it takes a long time for it to realize a connection failure on IPv6 before trying IPv4.
I'm going to fix #231 so binding to localhost will not cause this issue because Kestrel will be listening on both IPv4 and IPv6. For now you can workaround by either listening on both <IP_ADDRESS> and ::1, or by proxying to <IP_ADDRESS> as @halter73 pointed above.

@halter73 Yes, that seems to work.
@cesarbs So the solution is to turn off IP6 until this is fixed officially?

@amcdnl If you bind Kestrel to both http://<IP_ADDRESS> and http://[::1], it should work when nginx uses proxy_pass http://localhost.

@cesarbs I'm trying to get Parrallels proxying to work too reason I ask. I tried disabling IPv6 in that and no dice. It doesn't even respond when I try http://<IP_ADDRESS>:5000/ or http://localhost:5000/ either.

I would probably be safe to assume this would not work with docker proxying too?

@amcdnl: You typically want to configure Kestrel to accept external requests when running inside a VM or container.  URLs http://<IP_ADDRESS> and http://localhost only accept requests from localhost.  Use a URL like http://+ to listen for external requests.

To summarize, there are two valid workarounds for nginx proxying to Kestrel in RC2:

Workaround
nginx proxy_pass
Kestrel UseUrls()

IPv4-only
http://<IP_ADDRESS>
http://<IP_ADDRESS>

IPv4 and IPv6
http://localhost
http://<IP_ADDRESS>;http://[::1]

@mikeharder Can you provide an example of the config to make it accept external requests?

Accept external requests on both IPv4 and IPv6, port 5000:
var host = new WebHostBuilder()
    .UseUrls("http://+:5000")
    .UseKestrel()

@mikeharder Works! Thanks for your help!

@mikeharder  Thanks!

@mikeharder shouldn't that be the default?

@amcdnl Rejecting external requests by default and when "localhost" is specified was a design decision we made to make Kestrel more secure by default: https://github.com/aspnet/Announcements/issues/80
I do think that Kestrel should bind to both the IPv4 and IPv6 loopback intervaces which is tracked by #231 and fixed by #870.

I'm having the same problem with browser-sync and kestrel.
Tried using this without success:
.UseUrls("http://<IP_ADDRESS>;http://[::1]")
I'm using kestrel dev branch.
Is there another workaround to try for this?

I've used this with RC2 relase + BS 2.*

@peterblazejewicz that doesn't work for me either, sorry.
I'm on Windows 10 (10586.318 build). Visual Studio 2015 Update 2, dotnet 1.0.0-preview1-002702, browser-sync 2.12.8, and tried with the RC2 release this time.

@erandros
The above solution definitely works for me (i've just tried at work):
$ gulp serve --reload --open
[08:40:47] Using gulpfile C:\dev\recipes\src\gulp-dotnet-browser-sync\StarterWeb\gulpfile.js
[08:40:47] Starting 'dotnet:hosting'...
[08:40:47] Finished 'dotnet:hosting' after 3.17 ms
[08:40:47] Starting 'serve'...
watching for changes ...
[BS] Proxying: http://<IP_ADDRESS>:5000
[BS] Access URLs:
 -----------------------------------
       Local: http://localhost:3000
    External: http://<IP_ADDRESS>:3000
 -----------------------------------
          UI: http://localhost:3001
 UI External: http://<IP_ADDRESS>:3001
 -----------------------------------
[DotNetWatcher] info: Running dotnet with the following arguments: run
[DotNetWatcher] info: dotnet process id: 12580
Project StarterWeb (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Hosting environment: Development
Content root path: C:\dev\recipes\src\gulp-dotnet-browser-sync\StarterWeb\
Now listening on: http://+:5000
Application started. Press Ctrl+C to shut down.

I'm using +:5000 to setup Kestrel urls in above example but 'localhost:5000' and 'localhost:3000' when configuring BS

@peterblazejewicz
I don't get it ...
this is what I did:

Microsoft.AspNetCore.Server.WebListene => in project.json
"web": "Microsoft.AspNetCore.Hosting --server Microsoft.AspNetCore.Server.WebListener --server.urls http://+:5000" => in project.json
I don't know where to put this:
var host = new WebHostBuilder()  .UseUrls("http://+:5000")  .UseKestrel()
this is the command line for BS:

browser-sync start --proxy "http://localhost:5000" --files "wwwroot/css/*.css"
(I'm not sure for the proxy)

@okuz Are you trying to use RC2? We no longer support adding commands (like the "web" command) to the project.json.
"web": "Microsoft.AspNetCore.Hosting --server Microsoft.AspNetCore.Server.WebListener --server.urls http://+:5000"  makes it look like your trying to use WebListener, but I assume it doesn't matter to you what server you use.
var host = new WebHostBuilder() .UseUrls("http://+:5000") .UseKestrel() belongs in your Program.Main. You should also have something like .UseContentRoot(Directory.GetCurrentDirectory()).UseStartup<Startup>().Build(); after  .UseKestrel(), and add  "buildOptions": { "emitEntryPoint": true ... to your project.json.
I would see if you can get this sample running first: https://github.com/aspnet/cli-samples/tree/master/HelloMvc
I would also make sure that everything is working without a proxy trying anything else like browser-sync.

@halter73 upgraded to 1.0 and having same issue again :( ... Something change?


Added get_indexes

Add a get_indexes function to extract the name of the indexes being requested
Modified get_query to support queries from non wiki sites

thumbs up


PHP open/close tag not behaving properly

When creating an opening PHP tag and pressing Enter, the editor does not automatically add tabs before the next line as expected.
The result is this cursor placement:

After manually adding the tabs and hitting enter, the editor still does not add the tabs.
However, enclosing the PHP code with brackets does seem to fix this issue, but is not feasible, and also when I type the brackets, it re-positions it to the first character of the line:

This is a problem that has existed in Brackets for many many versions and exists in a clean install. I have no extensions.

Use the language dropdown menu to select PHP mode instead of HTML (and optionally set PHP as the default for .html-files from top of that same menu after selecting the mode).

The file I had open in my screenshots was a .php file, and the mode was set to PHP.
However, even if I create a .html file and follow your steps, the issue persists.

@baileyherbert Oh, the issue was fixed in https://github.com/codemirror/CodeMirror/commit/9018087c161f32abac9f3ba43e6591f1b9bcab05 (#3488) which didn't land to 1.5. I think.
Can you try the latest master (https://github.com/adobe/brackets/wiki/How-to-Hack-on-Brackets) to see if the issue is fixed?


Changes for embedding customized dashboard

Changes for consuming

CATTLE_DASHBOARD_UI_VERSION - the custom dashboard version
CATTLE_DASHBOARD_BASE_URL - the base url of location (release or objectstorage) for the custom dashboard tar
env variables and then downloading and embedding custom dashboard in main rancher image

Simplified to only keep CATTLE_DASHBOARD_TAR_URL

Raised https://github.com/verrazzano/rancher/pull/46


Doc: make some small changes to 'participant_session' mode doc string

Fix a typo and make some small changes to the wording about the new 'participant_session' mode.

Codecov Report

Merging #199 (f4e2908) into main (7fd4684) will decrease coverage by 0.42%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #199      +/-   ##
==========================================
- Coverage   90.01%   89.60%   -0.42%
==========================================
  Files          32       32
  Lines        1693     1693
==========================================
- Hits         1524     1517       -7
- Misses        169      176       +7

Bypassing branch protections (no review) as this is only a minor doc tweak and there is a need to create a new point release without delay.


Implement simulator proxy Android app

Added functionality to the Android application to serve as a proxy for communication with the up-simulator

This is migrated from up-android as we flatten the project structure


Multi-architecture images cannot be re-tagged

This action works by downloading a digest for a tag and then uploading it again to a different tag, however multi-architecture images do not return a digest to the API call: they return a list (application/vnd.docker.distribution.manifest.list.v2+json). Docker's Registry v2 API does not currently support pushing a list of digests to a tag, we must push each tag individually.

Due to the increased behaviour required of this action it probably makes most sense to rewrite with javascript and add some real tests.


Implement Anchor Links for Addressable Objects in Workflows

Feature: Implement Anchor Links for Addressable Objects in Workflows (Comment Box, Operators, Links)
Allowing users to access a specific object (e.g. comment box, operator, link) within a workflow using a URL referring to that object. For example, the URL for a workflow is /workflow/1, and the URL for a comment box would be similar to: /workflow/1#commentBox-dfb7f00d-c868-4c2a-8c5d-add48b99af66, where 1 is the workflow ID and commentBox-dfb7f00d-c868-4c2a-8c5d-add48b99af66 is comment box's UUID.
For comment boxes: Upon visiting a workflow using a URL with a comment box id in the workflow, the specified comment box will automatically pop up when opening the workflow.
For operators and links: Upon visiting a workflow using a URL with an operator/link id in the workflow, the specified operator/link will be highlighted.

Note: Do not close this issue when PR #1860 is merged. Anchor links for operators and links still need to be implemented.

According to the comment, this issue shall be reopened for the implementation of anchor links for operators and links.

Note: Do not close this issue when PR #1860 is merged. Anchor links for operators and links still need to be implemented.


exoscale: fix a typo in the env variable name

Signed-off-by: Yoan Blanc<EMAIL_ADDRESS>

Superseeded by #4334


Add support for X-Ray remote sampling

This implements https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues/714

Not at all and I am happy to adapt it but I was following the Java counterpart in this regard (https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/aws-xray). This also makes it easy to leave authentication tothe awsproxy extension for the collector as opposed to the application.

Oh I see. So this does not make requests to the AWS API but rather to a collector to get remote sampling rates?

The awsproxy is an extension for the OpenTelemetry collector "accepts requests without any authentication of AWS signatures applied and forwards them to the AWS API, applying authentication and signing" and is developed by AWS in-house.

The awsproxy is an extension for the OpenTelemetry collector "accepts requests without any authentication of AWS signatures applied and forwards them to the AWS API, applying authentication and signing" and is developed by AWS in-house. So the sampling rates/targets are still obtained from the X-Ray API - there just sits a proxy in-between.

Understood. So this implementation would only work if the Collector were a proxy since it would be handling signing requests.
E.g.
sequenceDiagram
    OTel SDK X-Ray Remote Sampler ->>otel-col-aws-proxy: "/SamplingTargets"
    otel-col-aws-proxy->>otel-col-aws-proxy: Generate Signed Request
    otel-col-aws-proxy->>AWS XRay API: "/SamplingTargets"
    AWS XRay API-->>otel-col-aws-proxy: SamplingTargetsResponse
    otel-col-aws-proxy-->> OTel SDK X-Ray Remote Sampler: SamplingTargetsResponse

Is that right?

Yes, that's right. Unfortunately, the official X-Ray client does not accept unsigned requests (Aws::Errors::MissingCredentialsError: unable to sign request without credentials set)

Thank you for taking the time to patiently explain this to me.
With that in mind, I'll take a look at this PR later this week.

Thank you very much. Please let me know if I can be of assistance