jpype crashing/hanging when invoked from a celery worker

I've got a strange thing going on in JPype, but it's significantly impacting my ability to move forward.  When I invoke a rather computationally intensive java routine from a celery worker, it's hanging up.  I have added log statements to my java code to try to isolate the failure point to no avail.  It seems to be (usually) stopping inside of a try/catch block, but it is never executing the catch... it just kinda stops.
When I invoke the exact same code in a standalone script (ie, not from celery), it runs to completion.  The celery tasks are running on different threads, and I have invoked jpype.attatchToJVM().
Any tips for how to debug this?  I'm at a complete loss.
FWIW I have installed the latest version from commit id: 85d9a6021eaca9ff345b036f9ea78829864d7f95

Not sure how to approach this.  To get what you describe the would need to be a deadlock.  But without a model to see what resources are being used I can't see how that would occur.  Are you using Proxy or other code that is forcing a python lock?
My usual debugging method is to enable tracing and see what routine jpype was executing.  Hopefully that will point you to the deadlock.

First: thank you for your quick reply.  I love 99% of what I'm seeing in jpype and would be happy to help make it better.  It's the open-source way!  I've made some fun java code that writes jpype python wrappers into a module that works pretty well.  Once it's all stable, I could contribute that back.
So... how to I enable tracing?  The code I'm working on right now is company proprietary (because... well, gotta pay the bills).  I can try enabling tracing and dumping a log, or I can try to recreate it in a smaller/non-proprietary setting.
I'm also trying a few more debugging steps on my end:

I'm installing everything on a Amazon Cloud9 instance to try it on a different OS
I'm trying it with the 0.6.3 version that is installed via pip.

To enable tracing for the current master, download the git repo, edit the file native/common/include/jpype.py and uncomment the line //#define TRACING and build with python setup.py build .
The devel  version, the instructions are different.  The devel version has an setupext switch.  Simply use python setup.py --enable-tracing build.   I use this often on when developing so I made it a bit easier to activate.  You may want to try to see if the behavior is different on the devel version.  I did a complete restructuring of the core.   There were a number of bugs having to do with the locking that I discovered in the process of the rewrite.  The master version was very aggressive about releasing the python lock including during critical sections with resulted in race conditions.  But most that I recall lead to seg faults.
No guarantees that I hit the specific problem.
This pattern will enable logging all python and jni calls.  It currently logs to standard out.   I am not sure if anyone but me currently uses the tracing options but it should give you some insight as to what was happening at the time of the deadlock.  It isn't well structured for multithreading so it may take some time to interpret if it was multithreaded.

Ok, I've done some more research and testing.  All of this has been with 'master', and not 'devel'.  I've told ant to use JDK 1.8 Update 172 (the latest one I have)
First, let me explain a little more about how I'm using JPype because that may be relevent.
I have a java library that I want my python-literate coworkers to be able to use.  They all like Pycharm, and they especially like the 'intellisense' type auto-completion that you get with python classes.  They like using jpype, but they don't like not having auto-completion.  So... I wrote some java reflection code to auto-generate python wrappers around specific classes.
For example, in Java you have a class Foo (using Lombok annotations to keep it simple)
public class Foo
{
    @Getter @Setter private double bar;
}

The wrapped Foo.py file would look like this (I've omitted some of the complexities, so this may not be technically correct python code, but it gets the point across)
from jpype import JClass
from my_java_module import JVM

JFoo = JClass("com.example.Foo")

class Foo:
    def __init__(self, *args):
        if len(args) == 1 and isinstance(args[0],JFoo):
            self.instance = args[0]
        else:
            self.instance = JFoo(*args)

    def getBar(self):
        return self.instance.getBar()

    def setBar(self, arg0):
        self.instance.setBar(arg0)

The wrapped class lets a python developer do something like this:
myFoo = Foo()
myFoo.setBar(5.6)

One could argue that you could do that with the JClass version, but then PyCharm wouldn't know about setBar().  The general case is a little more complicated than what I've shown, but this will suffice for this discussion.
The import JVM at the top is how I start the JVM.  All of my wrapped classes include that line at the top.  The effect is that as soon as you import any of the wrapped classes, the JVM will be started.
Here's the code for JVM.py.  It's just a simple singleton that starts the JVM when imported.
from jpype import startJVM, getDefaultJVMPath
import os
import sys

class JVM:
    class __JVM:
        def __init__(self):
            classpath = "./lib/my-jar.jar"
            if os.environ.get('MY_JAVA_CLASSPATH') is not None:
                print("using environment variable MY_JAVA_CLASSPATH for classpath", file=sys.stderr)
                classpath = os.environ.get('MY_JAVA_CLASSPATH')
            else:
                print("using default classpath of " + classpath, file=sys.stderr)
                print("set environment variable MY_JAVA_CLASSPATH to specify a location necessary", file=sys.stderr)

            print("JVM path  : " + getDefaultJVMPath(), file=sys.stderr)
            print("classpath : " + classpath, file=sys.stderr)
            startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % classpath)
            print("JVM started...", file=sys.stderr)
            self.__JVM_STARTED__ = True

        def __str__(self):
            return "JVM Instance"

    instance = __JVM()

I have isolated the behavior into 4 test cases:
Machines: AWS VM, OSX Dev Laptop
Import Strategies: Global (top of file), Local (when function executes)
AWS VM / Global Import -> Hangs
OSX Dev Laptop / Global Import -> Hangs
AWS VM / Local Import -> Works
OSX Dev Laptop / Local Import -> SIGABORT

I have not tested against the devel branch because I can't get it to compile on AWS, but I'm working on it.
Global Import (both OSX and AWS) - Result: Apparent Deadlock
If I import Foo at the top of my tasks file, this causes the JVM to start while celery is starting up.  My assumption is that it's starting on the main thread, but I'm not entirely sure.  Regardless, when I do it this way, the JVM reports that it has started, but when I try to use it from a worker thread, the application hangs.  It feels to me like a deadlock, though I can't prove it.  It should be noted that this usually only happens on longer running operations, but not always.  On my Mac, I can setup my objects and kick off the longer running task before it hangs.  On an AWS VM it locks up sooner.  The trace doesn't really help here... you can see it going all the way into the java code and then sitting there.
Local import on AWS - Result: Successful Execution
Local import on OSX - Result: Hard Crash
As soon as it tries to start the jvm from the celery worker thread, I get this nasty SIGABORT
<B msg="startup" >
  <B msg="JPyString::asString" >
  </B> <!-- JPyString::asString -->
  <B msg="JPyString::asString" >
  </B> <!-- JPyString::asString -->
  <B msg="JPyString::asString" >
  </B> <!-- JPyString::asString -->
  <B msg="JPEnv::loadJVM" >
    <B msg="JPEnv::CreateJavaVM" >
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fff72e648e1, pid=47178, tid=0x0000000000000203
#
# JRE version:  (8.0_172-b11) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.172-b11 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C  [libdispatch.dylib+0x168e1]  _dispatch_root_queue_push+0x6c
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/stewart/code/python_project/hs_err_pid47178.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

Here's the core dump:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fff72e648e1, pid=47178, tid=0x0000000000000203
#
# JRE version:  (8.0_172-b11) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.172-b11 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C  [libdispatch.dylib+0x168e1]  _dispatch_root_queue_push+0x6c
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x00007fc3de9d9800):  JavaThread "main" [_thread_in_native, id=515, stack(0x00007ffee4b61000,0x00007ffee5b61000)]

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000110

Registers:
RAX=0x0000000000000100, RBX=0x00007fc3e21626b0, RCX=0x00000000a00606ff, RDX=0x0000000000000005
RSP=0x00007ffee5b52c68, RBP=0x00007ffee5b52d00, RSI=0x00000001112010c0, RDI=0x00007fffab967840
R8 =0x0000000000000005, R9 =0x00000000000000c0, R10=0x00000000ff800000, R11=0x00007fc3e2100000
R12=0x0000000000000010, R13=0x00007fffab967840, R14=0x00007fc3e2162b00, R15=0x0000000000000003
RIP=0x00007fff72e648e1, EFLAGS=0x0000000000010206, ERR=0x0000000000000006
  TRAPNO=0x000000000000000e

Top of Stack: (sp=0x00007ffee5b52c68)
0x00007ffee5b52c68:   00007fff72e54689 00007ffe000010ff
0x00007ffee5b52c78:   00007fff722638b7 00007fc3dd7f2948
0x00007ffee5b52c88:   00000010ab962d60<PHONE_NUMBER>000000
0x00007ffee5b52c98:   00007fc3e21625b0 00007fc3e2162708
0x00007ffee5b52ca8:<PHONE_NUMBER>000003<PHONE_NUMBER>002b03
0x00007ffee5b52cb8:   00007fc3e21626b0<PHONE_NUMBER>000031
0x00007ffee5b52cc8:   00007fc3e2026920<PHONE_NUMBER>002c03
0x00007ffee5b52cd8:<PHONE_NUMBER>000000 00007fc3e21626b0
0x00007ffee5b52ce8:<PHONE_NUMBER>000005<PHONE_NUMBER>000000
0x00007ffee5b52cf8:   00007fc3dd7f2948 00007ffee5b52d60
0x00007ffee5b52d08:   00007fff72e5529f<PHONE_NUMBER>000000
0x00007ffee5b52d18:   00007fc3dd7f2990<PHONE_NUMBER>271003
0x00007ffee5b52d28:   00007fc3dd7f2998 00007fc3e2026920
0x00007ffee5b52d38:<PHONE_NUMBER>000010 00007fc3e2026920
0x00007ffee5b52d48:<PHONE_NUMBER>000013 00007fc3e21626b0
0x00007ffee5b52d58:   00007fc3e21625b0 00007ffee5b52dc0
0x00007ffee5b52d68:   00007fff72e6a66a<PHONE_NUMBER>000000
0x00007ffee5b52d78:<PHONE_NUMBER>000000 00007fc3e2026920
0x00007ffee5b52d88:   00007fc3dd7f2948<PHONE_NUMBER>694c2f
0x00007ffee5b52d98:   00007fc3e21626b0<PHONE_NUMBER>000000
0x00007ffee5b52da8:<PHONE_NUMBER>001513 00007ffee5b52e14
0x00007ffee5b52db8:   00007ffee5b52e08 00007ffee5b52df0
0x00007ffee5b52dc8:   00007fff72e6b079 00007fc3e2162600
0x00007ffee5b52dd8:   00007fc3e2024c80<PHONE_NUMBER>000000
0x00007ffee5b52de8:   00007fc3e21626b0 00007ffee5b52e40
0x00007ffee5b52df8:   00007fff731dca7c<PHONE_NUMBER>000000
0x00007ffee5b52e08:   00007ffee5b52e98 00007fc3e2024c80
0x00007ffee5b52e18:   00007fc3e2162600 00007fc3e2161510
0x00007ffee5b52e28:   00007fffab967840 00007fc3e2024c80
0x00007ffee5b52e38:<PHONE_NUMBER>002b03 00007ffee5b52e80
0x00007ffee5b52e48:   00007fff731dc4d1 00007ffee5b52e98
0x00007ffee5b52e58:   00007ffee5b52f28 00007ffee5b52fa0

Instructions: (pc=0x00007fff72e648e1)
0x00007fff72e648c1:   0f b6 c1 85 c0 74 05 e9 67 00 00 00 48 c7 46 10
0x00007fff72e648d1:   00 00 00 00 48 89 f0 48 87 47 50 48 85 c0 74 43
0x00007fff72e648e1:   48 89 70 10 c3 4c 8b 48 08 8b 51 58 4d 85 c9 40
0x00007fff72e648f1:   0f 94 c7 85 d2 78 05 40 84 ff 74 92 85 d2 48 8b

Register to memory mapping:

RAX=0x0000000000000100 is an unknown value
RBX=0x00007fc3e21626b0 is an unknown value
RCX=0x00000000a00606ff is an unknown value
RDX=0x0000000000000005 is an unknown value
RSP=0x00007ffee5b52c68 is pointing into the stack for thread: 0x00007fc3de9d9800
RBP=0x00007ffee5b52d00 is pointing into the stack for thread: 0x00007fc3de9d9800
RSI=0x00000001112010c0 is an unknown value
RDI=0x00007fffab967840: _dispatch_root_queues+0x580 in /usr/lib/system/libdispatch.dylib at 0x00007fff72e4e000
R8 =0x0000000000000005 is an unknown value
R9 =0x00000000000000c0 is an unknown value
R10=0x00000000ff800000 is an unknown value
R11=0x00007fc3e2100000 is an unknown value
R12=0x0000000000000010 is an unknown value
R13=0x00007fffab967840: _dispatch_root_queues+0x580 in /usr/lib/system/libdispatch.dylib at 0x00007fff72e4e000
R14=0x00007fc3e2162b00 is an unknown value
R15=0x0000000000000003 is an unknown value

Stack: [0x00007ffee4b61000,0x00007ffee5b61000],  sp=0x00007ffee5b52c68,  free space=16327k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libdispatch.dylib+0x168e1]  _dispatch_root_queue_push+0x6c
C  [libdispatch.dylib+0x729f]  _dispatch_mach_send_drain+0x145
C  [libdispatch.dylib+0x1c66a]  _dispatch_mach_send_msg+0x18a
C  [libdispatch.dylib+0x1d079]  dispatch_mach_send_with_result_and_async_reply_4libxpc+0x66
C  [libxpc.dylib+0x9a7c]  _xpc_connection_enqueue+0x79
C  [libxpc.dylib+0x94d1]  xpc_connection_send_message_with_reply+0xcf
C  [CoreFoundation+0x1c0c85]  __80-[CFPrefsSearchListSource alreadylocked_generationCountFromListOfSources:count:]_block_invoke_2+0x85
C  [CoreFoundation+0x1ea1b4]  -[_CFXPreferences withConnectionForRole:performBlock:]+0x24
C  [CoreFoundation+0x1c0bb5]  __80-[CFPrefsSearchListSource alreadylocked_generationCountFromListOfSources:count:]_block_invoke+0xc5
C  [CoreFoundation+0x1c0a1d]  -[CFPrefsSearchListSource alreadylocked_generationCountFromListOfSources:count:]+0xfd
C  [CoreFoundation+0x3a3f6]  -[CFPrefsSearchListSource alreadylocked_copyDictionary]+0x146
C  [CoreFoundation+0x4246f]  -[CFPrefsSource copyDictionary]+0x2f
C  [CoreFoundation+0x1e92dc]  __54-[_CFXPreferences copyDictionaryForApp:withContainer:]_block_invoke+0x1c
C  [CoreFoundation+0x1c2229]  __108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke+0x129
C  [CoreFoundation+0x1c2095]  -[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]+0x155
C  [CoreFoundation+0x1e9256]  -[_CFXPreferences copyDictionaryForApp:withContainer:]+0x76
C  [CoreFoundation+0x423b9]  __CFXPreferencesCopyCurrentApplicationState+0x119
C  [CoreFoundation+0x41c28]  _CFLocaleCopyCurrentGuts+0x108
C  [libjava.dylib+0xd2a7]  getMacOSXLocale+0x123
C  [libjava.dylib+0xd353]  setupMacOSXLocale+0x12
C  [libjava.dylib+0xd765]  ParseLocale+0x2e
C  [libjava.dylib+0xd4ef]  GetJavaProperties+0x183
C  [libjava.dylib+0x5cbb]  Java_java_lang_System_initProperties+0x30
j  java.lang.System.initProperties(Ljava/util/Properties;)Ljava/util/Properties;+0
j  java.lang.System.initializeSystemClass()V+13
v  ~StubRoutines::call_stub
V  [libjvm.dylib+0x2f0b3a]
V  [libjvm.dylib+0x2f0d35]
V  [libjvm.dylib+0x2f0ead]
V  [libjvm.dylib+0x57313b]
V  [libjvm.dylib+0x3271b2]
C  [_jpype.cpython-36m-darwin.so+0x242cb]  _ZN5JPEnv12CreateJavaVMEPv+0x3b
C  [_jpype.cpython-36m-darwin.so+0x24128]  _ZN5JPEnv7loadJVMERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEcRKNS0_6vectorIS6_NS4_IS6_EEEE+0x118
C  [_jpype.cpython-36m-darwin.so+0xabee]  _ZN11JPypeModule7startupEP7_objectS1_+0x16e
C  [Python+0x5729b]  _PyCFunction_FastCallDict+0x1eb
C  [Python+0xd9e27]  call_function+0x1b7
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xda88f]  _PyEval_EvalCodeWithName+0x98f
C  [Python+0xdb141]  fast_function+0x221
C  [Python+0xd9e01]  call_function+0x191
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xdb2bc]  _PyFunction_FastCallDict+0x15c
C  [Python+0xe3e7]  _PyObject_FastCallDict+0xf7
C  [Python+0xe505]  _PyObject_Call_Prepend+0x95
C  [Python+0xe220]  PyObject_Call+0x60
C  [Python+0x6f48d]  slot_tp_init+0x7d
C  [Python+0x6b6d9]  type_call+0x139
C  [Python+0xe3b5]  _PyObject_FastCallDict+0xc5
C  [Python+0xd9d28]  call_function+0xb8
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xda88f]  _PyEval_EvalCodeWithName+0x98f
C  [Python+0xcf9cb]  PyEval_EvalCodeEx+0x6b
C  [Python+0xcc2cc]  builtin___build_class__+0x30c
C  [Python+0x57167]  _PyCFunction_FastCallDict+0xb7
C  [Python+0xd9e27]  call_function+0x1b7
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xda88f]  _PyEval_EvalCodeWithName+0x98f
C  [Python+0xcf954]  PyEval_EvalCode+0x64
C  [Python+0xccfe4]  builtin_exec+0x224
C  [Python+0x57052]  PyCFunction_Call+0x102
C  [Python+0xd69ea]  _PyEval_EvalFrameDefault+0x6fca
C  [Python+0xda88f]  _PyEval_EvalCodeWithName+0x98f
C  [Python+0xdb141]  fast_function+0x221
C  [Python+0xd9e01]  call_function+0x191
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xdb09d]  fast_function+0x17d
C  [Python+0xd9e01]  call_function+0x191
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xdb09d]  fast_function+0x17d
C  [Python+0xd9e01]  call_function+0x191
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xdb09d]  fast_function+0x17d
C  [Python+0xd9e01]  call_function+0x191
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xdb2bc]  _PyFunction_FastCallDict+0x15c
C  [Python+0xe3e7]  _PyObject_FastCallDict+0xf7
C  [Python+0xf408]  _PyObject_CallMethodIdObjArgs+0x208
C  [Python+0xf779b]  PyImport_ImportModuleLevelObject+0x51b
C  [Python+0xd4ede]  _PyEval_EvalFrameDefault+0x54be
C  [Python+0xda88f]  _PyEval_EvalCodeWithName+0x98f
C  [Python+0xcf954]  PyEval_EvalCode+0x64
C  [Python+0xccfe4]  builtin_exec+0x224
C  [Python+0x57052]  PyCFunction_Call+0x102
C  [Python+0xd69ea]  _PyEval_EvalFrameDefault+0x6fca
C  [Python+0xda88f]  _PyEval_EvalCodeWithName+0x98f
C  [Python+0xdb141]  fast_function+0x221
C  [Python+0xd9e01]  call_function+0x191
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xdb09d]  fast_function+0x17d
C  [Python+0xd9e01]  call_function+0x191
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xdb09d]  fast_function+0x17d
C  [Python+0xd9e01]  call_function+0x191
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xdb09d]  fast_function+0x17d
C  [Python+0xd9e01]  call_function+0x191
C  [Python+0xd6597]  _PyEval_EvalFrameDefault+0x6b77
C  [Python+0xdb2bc]  _PyFunction_FastCallDict+0x15c
C  [Python+0xe3e7]  _PyObject_FastCallDict+0xf7
C  [Python+0xf408]  _PyObject_CallMethodIdObjArgs+0x208
...<more frames>...

  When you said failed in a thread I figured it would be in the proxy code, but this is a fail on getting environment variables on startup.   Are you sure that you don't have more than one JVM started?  Your module doesn't do a check for isJVMStarted, but I thought that we have explicit checks to prevent a fail there so that seems unlikely.  The trace also does not show a second call.
My next best guess is this is a security violation.  I don't know much about celery, but it may be possible that it is trying to start the JVM from within some type of sand box.  My approach would be to instrument the call to JPEnv::CreateJavaVM to record all the inputs that are being passed to JVM and see if I was sure that nothing bad got sent to the JVM call.  As you can see in the trace, we haven't even made contact with the JVM, so assuming we are providing it with valid inputs the bug is likely in the JVM and not within JPype.
The last option here though it seems unlikely is the shared memory loader for the jvm has somehow failed.  The only thing that we do with the JVM before this point is loading the shared library into memory.  On architectures with mixed executable files (32/64) this can often go wrong leading to a bad entry point.   But as you ran to the Parse locale it seems unlikely.
C  [libjava.dylib+0xd2a7]  getMacOSXLocale+0x123
C  [libjava.dylib+0xd353]  setupMacOSXLocale+0x12
C  [libjava.dylib+0xd765]  ParseLocale+0x2e
C  [libjava.dylib+0xd4ef]  GetJavaProperties+0x183
C  [libjava.dylib+0x5cbb]  Java_java_lang_System_initProperties+0x30
j  java.lang.System.initProperties(Ljava/util/Properties;)Ljava/util/Properties;+0
j  java.lang.System.initializeSystemClass()V+13
v  ~StubRoutines::call_stub
V  [libjvm.dylib+0x2f0b3a]
V  [libjvm.dylib+0x2f0d35]
V  [libjvm.dylib+0x2f0ead]
V  [libjvm.dylib+0x57313b]
V  [libjvm.dylib+0x3271b2]
C  [_jpype.cpython-36m-darwin.so+0x242cb]  _ZN5JPEnv12CreateJavaVMEPv+0x3b

The specific failure point is
  // Get the entry points in the shared library
  loadEntryPoints(vmPath);  <== Could load invalid pointers

  JavaVMInitArgs jniArgs;
  jniArgs.options = NULL;

  // prepare this ...
  jniArgs.version = USE_JNI_VERSION;
  jniArgs.ignoreUnrecognized = ignoreUnrecognized;

  jniArgs.nOptions = (jint)args.size();
  jniArgs.options = (JavaVMOption*)malloc(sizeof(JavaVMOption)*jniArgs.nOptions);
  memset(jniArgs.options, 0, sizeof(JavaVMOption)*jniArgs.nOptions);
  for (int i = 0; i < jniArgs.nOptions; i++)
  {
    jniArgs.options[i].optionString = (char*)args[i].c_str();  <== All options should be valid
  }
  JPEnv::CreateJavaVM((void*)&jniArgs);  <== Everything in the structure should be valid at this point
  free(jniArgs.options);

The only trace I could find that was similar is
https://bugs.openjdk.java.net/secure/attachment/72587/hs_err_pid55488.log

One random thought.  I managed to do a similar crash once when I left the 'M' off when setting the size of the stack when creating the JVM.  I wanted 256M Bytes and I got 256 bytes of stack.  That caused a similar segfault as it crashed on some benign method within the startup routine.

By the time it gets into JPEnv::CreateJavaVM() the options are a void*, and to be honest, my C skills have apparently atrophied to the point where I wasn't entirely sure what to do with that.  So, I instrumented JPEnv::loadJVM() to print out the jniArgs.options[] right before JPEnv::CreateJavaVM() is called
	for(int i =0; i < jniArgs.nOptions; i++)
	{
		TRACE2(i, jniArgs.options[i].optionString);
	}
	JPEnv::CreateJavaVM((void*)&jniArgs);

This was the output
  <B msg="JPEnv::loadJVM" >
    <M>JPEnv::loadJVM : 0 -ea</M>
    <M>JPEnv::loadJVM : 1 -Djava.class.path=./lib/blacklynx-aerospace.jar</M>
    <B msg="JPEnv::CreateJavaVM" >

Seems pretty reasonable...
I'll look at
loadEntryPoints(vmPath);  <== Could load invalid pointers

One random thought - I'm using Oracle JDK on my mac (it's the default install) and OpenJDK on the AWS instance.  I'll try installing OpenJDK on the mac when I get time.

It has to be in CreateJVM_Method given...
C  [_jpype.cpython-36m-darwin.so+0x242cb]  _ZN5JPEnv12CreateJavaVMEPv+0x3b
Unfortunately past that point you are into a java core function as that is just a pointer into the jvm shared library.
So my guess of what is going on here is there is some type of library conflict or an external setting taken from the OS that is blowing things up.  Assuming that jpype hasn't created a second jvm, the call we are making can't fail unless provided with bad arguments (perhaps the -ea).  So either the JVM is picking up and argument like the stack size from some place or something loaded a library which the JVM tried to use that was not compatible with that the JVM expected.
I recommend trying a different JVM and checking that all the libraries that the JVM uses are correct.  I am not sure how you can be in a state that the JVM start fails from within JPype and works outside it.

Thanks,
I'll try OpenJDK when I get a chance.
I'm going to try to put together a simple celery test case that causes the hangup that I'm seeing.

Ok... so there must be something screwy with the way that we're trying to start the JVM in this project.  When I created a new virtual environment and a very small sandbox project, I was able to start the JVM from a celery thread on my mac.  I'll look into that.
I went ahead and created a standalone project that showcases the deadlock I'm talking about.  In the process, I also discovered that I'm getting one JVM per worker thread in celery.  The project has a readme.md that explains how to recreate both bugs.  I have successfully recreated the behavior on an Amazon AMI (not AMI2) VM as well as my mac.
You can download the project here: https://github.com/fbl100/jpype-358
The readme.md file should give you everything you need to know to reproduce both situations (starting multiple JVM's when you're starting the JVM from a worker thread, and the apparent deadlock when you start the JVM from the main thread and then try to use it from a worker thread).
I also included the java source code that the python is calling.  It's not what my actual application is doing, but calculating mandelbrot images is a reasonable computational stand-in.
I would appreciate if you could take a look.    My preferred method of using this would be to start the JVM at application startup and then just use it.
Thanks!

Okay I will take a look likely over the weekend.   I certainly don't think we can run with more than one jvm per python instance.  But perhaps I misunderstand the problem.

I was a bit confused by that as well, and I'll be honest, I don't really understand how celery is doing its thing under the hood either.  I appreciate you taking the time to investigate and would be happy to help fix the issue (assuming we figure out what it is).

Okay I haven't had time to look through your code in detail, but I did test out a few things with regard to python/java interactions.
JPype does not act well when dealing with python multiprocessing which is likely what celery is doing.  It forks the process creating another instance of the module but that does not properly create a new JVM.  Thus the module is in some odd state in which operations hang or die.
My example code showing the problem (hacked from some very bad questions on stackoverflow).
import jpype
import time
import multiprocessing

jpype.startJVM(jpype.getDefaultJVMPath())

class MyProcess(multiprocessing.Process):
    def run(self):
        print("hello world")
        print(jpype.isJVMStarted())
        jc = jpype.JClass("java.lang.String")
        print(jc)
        print(jc("Foo"))
        print("done")

def testStuff():
    process = MyProcess()
    process.start()
    time.sleep(20)
    process.join()
    print("done")

testStuff()

It is not clear what multiprocessing is doing under the hood and it is very likely architecture dependent.   I would have expected that new process would have a clean environment without an active JVM but that is not the case.  I am not sure what is the correct course of action to fix this.

What output are you seeing when you run this?  I ran it on my mac and it appears to work as expected.

On POSIX systems, the child process inherits the parents
environment/memory. So this is likely messing things up.
I'd guess a child process would have to start its own JVM, return the
results to Python and pickle it to the master process if needed.

On my windows system I get True for jvm started than it hangs when in the call to the findClass method.  It never made it to printing the class.  Though the fact that it ran fine on the mac may mean my test case is not hitting the same problem.

interesting, I will try to recreate on windows, but I feel like we're at least circling in on the problem.  I'm going to do some reading on JNI and Python multiprocessing to see if that yields anything.

Most of the stuff I have googled on the subject suggest that fork() is very problematic for jvms.   Looking at the celery code I do not see anything using multiprocessing directly, but the framework appears to be built on billiard.   Looking at the docs, it appears to be a rework of the multiprocessing, so we are clearly on the right track.  I don't know anything about its API, but if we can replicated the bug using billiard like I have done in multiprocessing, then we can eliminate the celery layer and perhaps get closer to the issue.
https://pypi.org/project/billiard/
I am guessing here but I think several major actions will be required before jpype can work with pythons concept of multiprocessing.   The module itself has a large number of globals of which many of them likely are not safe though a fork operation.  Most of them are scheduled for deletion once I centralize the typemanager into java.  The JVM itself has to survive which may be questionable but this is outside our control.  And last many of these frameworks are using pickle to push objects from one python process to another as communications.  This is possible but requires that we have a centralized tree for all of the python wrappers so that when the pickle loader tries to request classes for deserialization it has a proper module to pull the serialization routine from.  Currently our classes are dynamic hanging out in _jclass where they don't actually exist prior to being created.  Thus pickle calls to create the class and finds nothing and thus no deserialization routine to class.  I have been working on and off to try to create a virtual base module that can intercept calls to create classes and redirect them back to JClass.    However, until I analyze this further I can't tell if this is problem is related to your issue.

Okay looking at billiard it is pretty clear that it is pickling objects to send them from one process to another.  Similar code appears in multiprocessing.   It must be somehow pickling the _jpype module and getting that corrupted module back.  It doesn't have to hit any of our java classes to go wrong if that is the case.  I am not sure exactly what it is doing as modules are not capable of being pickled, but somehow the objects got pushed across.  Maybe a trace of the original process will show how the material ends up transferring.

I hate to say it, but you guys are far deeper into the weeds than I think I can help (without learning a few more things!).  For now, is it reasonable to continue starting the JVM after the process has been forked?  I realize this will have multiple JVM's running, but it's better than nothing.

Starting after the fork is by far the safest approach.  If you are using multiple processes then you will need multiple jvms regardless.   I will look into the pickle option  some more which may help pass between processes.
The alternative is multiple threads.  We support that option pretty well.

Documentation has been updated to reflect the requirement to start multiprocess using spawn.  Closing this thread for now.


Handling huggingfacehub_api_token=None for HuggingFaceEndpoint

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
from langchain_community.llms import HuggingFaceEndpoint

llm = HuggingFaceEndpoint(
    endpoint_url="http://localhost:8010/",
    max_new_tokens=512,
    top_k=10,
    top_p=0.95,
    typical_p=0.95,
    temperature=0.01,
    repetition_penalty=1.03,
    huggingfacehub_api_token=None
)

Error Message and Stack Trace (if applicable)
---------------------------------------------------------------------------
ValidationError                           Traceback (most recent call last)
Cell In[2], line 3
      1 from langchain_community.llms import HuggingFaceEndpoint
----> 3 llm = HuggingFaceEndpoint(
      4     endpoint_url="http://localhost:8010/",
      5     max_new_tokens=512,
      6     top_k=10,
      7     top_p=0.95,
      8     typical_p=0.95,
      9     temperature=0.01,
     10     repetition_penalty=1.03,
     11     huggingfacehub_api_token=None
     12 )

File ~/Jupyter/llm/venv/lib/python3.10/site-packages/langchain_core/load/serializable.py:120, in Serializable.__init__(self, **kwargs)
    119 def __init__(self, **kwargs: Any) -> None:
--> 120     super().__init__(**kwargs)
    121     self._lc_kwargs = kwargs

File ~/Jupyter/llm/venv/lib/python3.10/site-packages/pydantic/v1/main.py:341, in BaseModel.__init__(__pydantic_self__, **data)
    339 values, fields_set, validation_error = validate_model(__pydantic_self__.__class__, data)
    340 if validation_error:
--> 341     raise validation_error
    342 try:
    343     object_setattr(__pydantic_self__, '__dict__', values)

ValidationError: 1 validation error for HuggingFaceEndpoint
__root__
  Could not authenticate with huggingface_hub. Please check your API token. (type=value_error)

Description
Background
While restructuring our codebase in response to the deprecation of HuggingFaceTextGenInference, I encountered an error when attempting to create a HuggingFaceEndpoint with a locally hosted TGI server.
Issue
The error occurs in the validate_environment function of the huggingface_endpoint.py file, specifically in the lines 170-179.
The @root_validator() decorator throws an error when huggingfacehub_api_token is passed as None, which happens due to login(token=huggingfacehub_api_token) in validate_environment function. By commenting out the block that processes the API token and manually setting huggingfacehub_api_token to None, I am able to successfully create an InferenceClient.
Since HuggingFaceTextGenInference is fused into HuggingFaceEndpoint in PR #17254, we need to add logic to handle cases where huggingfacehub_api_token is passed as None or when no environment variable HUGGINGFACEHUB_API_TOKEN is set. This is particularly necessary for setups using a locally hosted TGI server where authentication with the Huggingface Hub may not be required.
System Info
huggingface-hub==0.22.2
langchain-commnity==0.0.32
platform: linux
python version: 3.10

I also am having this issue. Please fix!

Hello,
I'm also having this issue.
I need to run an inference server locally. I should require to use Hugging Face API Token, since it's my local TGI.

Hi. Let me add that this issue also persists when using a token that is issued by HuggingFace's oath service. https://www.gradio.app/guides/sharing-your-app#o-auth-login-via-hugging-face
That's because you can use these tokens for accessing inference API, but not for logging in. But token validity is checked by trying to login to hub, as detailed above.
As a workaround I subclassed HuggingFaceEndpoint:
from langchain_community.llms.huggingface_endpoint import HuggingFaceEndpoint
from langchain_core.pydantic_v1 import root_validator
from langchain_core.utils import get_from_dict_or_env

class LazyHuggingFaceEndpoint(HuggingFaceEndpoint):
    """LazyHuggingFaceEndpoint"""
    # We're using a lazy endpoint to avoid logging in with hf_token,
    # which might in fact be a hf_oauth token that does only permit inference,
    # not logging in.

    @root_validator()
    def validate_environment(cls, values: Dict) -> Dict:
        """Validate that package is installed; SKIP API token validation."""
        try:
            from huggingface_hub import AsyncInferenceClient, InferenceClient

        except ImportError:
            msg = (
                "Could not import huggingface_hub python package. "
                "Please install it with `pip install huggingface_hub`."
            )
            raise ImportError(msg)  # noqa: B904

        huggingfacehub_api_token = get_from_dict_or_env(
                values, "huggingfacehub_api_token", "HUGGINGFACEHUB_API_TOKEN"
            )

        values["client"] = InferenceClient(
            model=values["model"],
            timeout=values["timeout"],
            token=huggingfacehub_api_token,
            **values["server_kwargs"],
        )
        values["async_client"] = AsyncInferenceClient(
            model=values["model"],
            timeout=values["timeout"],
            token=huggingfacehub_api_token,
            **values["server_kwargs"],
        )

        return values

Might also help here: https://github.com/langchain-ai/langchain/issues/19685

experiencing the same, I'd like to be able to talk to a local TDI that has no auth, but I can't

This is a showstopper for me.
It would be nice here an acknowledgment of the issue. I'm sorry I don't have a pull request.

i've tried commenting out the offending block per @martj001 original comment.
Here is my setup

on a remote server I have hugging face text-generation-inference running:

model=meta-llama/Meta-Llama-3-8B-Instruct

docker run     --gpus all     --shm-size 1g     \
-p 8080:80     -v $volume:/data     \
-e HUGGING_FACE_HUB_TOKEN=$token     \
ghcr.io/huggingface/text-generation-inference:2.0.2     \
--model-id $model     --quantize bitsandbytes-fp4     \
--max-input-length 8000     --max-total-tokens 8192

I can verify its accessible <vm.ip>:8080

I have chat-ui running on the same VM with the following model config:

# 'name', 'userMessageToken', 'assistantMessageToken' are required
MODELS=`[
    {
      "name": "meta-llama/Meta-Llama-3-8B-Instruct",
      "displayName": "meta-llama/Meta-Llama-3-8B-Instruct",
      "description": "meta-llama/Meta-Llama-3-8B-Instruct",
      "multimodal" : false,
      "websiteUrl": "https://meta.ai",
      "userMessageToken": "",
      "userMessageEndToken": "<|eot_id|>",
      "chatPromptTemplate"<EMAIL_ADDRESS>messages}}{{#ifUser}}<|start_header_id|>user<|end_header_id|>{{content}}<|eot_id|>{{/ifUser}}{{#ifAssistant}}<|start_header_id|>assistant<|end_header_id|>{{content}}<|eot_id|>{{/ifAssistant}}{{/each}}<|start_header_id|>assistant<|end_header_id|>",
      "parameters": {
          "temperature": 0.9,
          "top_p": 0.95,
          "top_k": 50,
          "truncate": 4096,
          "max_new_tokens": 4096,
          "stop": [
              "<|start_header_id|>",
              "<|end_header_id|>",
              "<|eot_id|>"
          ]
      },
      "endpoints": [
          {
              "type": "tgi",
              "url": "http://<IP_ADDRESS>:8080"
          }
      ]
    }
]`

My remote chat-ui works fine @ http://<vm.ip>:5173/ and interacts w/ the TGI hosted llama3 model no problem.

On another remote machine I'm trying to run a langchain chain, under chainlit. The only way I can get this to partially work is by commenting out the following in lanchain_community/llms/huggingface_endpoint.py

    @root_validator()
    def validate_environment(cls, values: Dict) -> Dict:
        """Validate that package is installed and that the API token is valid."""
        #try:
        #    from huggingface_hub import login

        #except ImportError:
        #    raise ImportError(
        #        "Could not import huggingface_hub python package. "
        #        "Please install it with `pip install huggingface_hub`."
        #    )
        #try:
            #huggingfacehub_api_token = get_from_dict_or_env(
            #    values, "huggingfacehub_api_token", "HUGGINGFACEHUB_API_TOKEN"
            #)
            #login(token=huggingfacehub_api_token)
        #except Exception as e:
        #    raise ValueError(
        #        "Could not authenticate with huggingface_hub. "
        #        "Please check your API token."
        #    ) from e
...

I construct it like this: (HuggingFaceEndpoint I can't get to work)

HuggingFaceTextGenInference(
        inference_server_url="http://<tgi.vm.ip>:8080",
        max_new_tokens=256,
        top_k=10,
        top_p=0.95,
        typical_p=0.95,
        temperature=0.8,
        repetition_penalty=1.03,
        streaming=True,
        timeout=30
        )

This sort of works, but I constantly get timeouts and non-responses. Its hard to tell whats going on with this without better logging.


4.9.0 different in npm release than github tag

Hey all!
We are using History through React Router and have a bug which is fixed by this commit https://github.com/ReactTraining/history/commit/78f016f6e5b49e2a23ec41799faf160dd68d6b6b
When I look on GitHub at the 4.9.0 tag I see that commit in the list of fixes https://github.com/ReactTraining/history/compare/v4.9.0...master
However when I check out, for example, the 4.9.0 UMD build I still see that removed code in there (https://unpkg.com/history@4.9.0/umd/history.js). Is there a mismatch between the GitHub tag and the npm release?

Can one of the maintainers tag and deploy this fix to NPM please?

There seems to be some confusion here. The changes in https://github.com/ReactTraining/history/commit/78f016f6e5b49e2a23ec41799faf160dd68d6b6b were merged, but never released. It's supposed to be in a new major release (v.5) but that has not yet been released.

@oskarolsson-jimdo Why is it in the v4.9.0 tag? https://github.com/ReactTraining/history/compare/v4.9.0...master

@jkup "v.4.9.0 ... master" means: "All commits from the 4.9.0 tag to the current head of master". I.E. that selection includes all commits that were made after the release.

But that package is broken for us until those commits are in. Well just have to fork it.

Ty all for the explanation!


Add output functions and tests for reporting module

Related issue
Supports internal issue 623 in Team-backlog
Description of changes
This is a sub-PR of https://github.com/IBM/detect-secrets/pull/46 (I'm breaking down the reporting PR for easier readability for reviewers).

output.py: contains functions for table, json, stats, and instructions output.
output_test.py: contains tests for output functions
requirements-dev: added tabulate package
setup.py: added tabulate pip package as a required install (meaning this will be installed when the detect-secrets pip package is installed since the table generation is dependent on it)

Case: no secrets failed conditions
~ detect-secrets audit --report .secrets.baseline

35 potential secrets in .secrets.baseline were reviewed. All checks have passed.

        - No unaudited secrets were found

        - No live secrets were found

        - No secrets that were audited as real were found

I just noticed something:
$ detect-secrets audit --report --omit-instructions --fail-on-live .secrets.baseline

35 potential secrets in .secrets.baseline were reviewed. Found 1 live secret, 0 unaudited secrets, and 0 secrets that were audited as real.

Failed Condition    Secret Type     Filename                Line
------------------  --------------  --------------------  ------
Live                Secret Keyword  config/production.ts      16

Failed conditions:

        - Live secrets were found

^ the stats text in this part shouldn't include the other condition checks since we're only telling DS to check for live secrets. I will fix this tomorrow for the other fail-on cases as well!

Build fails due to test coverage; this check will pass once all my reporting sub-PRs have been merged.

Ready for review!


Integrating TrustKit Framework

Description:
This PR wires TrustKit into Simperium: we're replacing SocketRocket former pinning mechanism.
Testing scenarios below.
Needs Review: @roundhill @astralbodies
Thanks in advance!!!
--
Scenario: Pinning Disabled!

Clone both, Simperium + Simplenote repositories
Map Simplenote to your local Simperium checkout: pod 'Simperium', :path => '../simperium-ios/'
Pod install please!
Run Simplenote

Verify that no TrustKit legend shows up in the console. Sync'ing should work seamlessly.
Scenario: Pinning Enabled

Repeat steps 1-3
Open Simplenote's SPAppDelegate.m (method setupSimperium) and add this line: [_simperium setCertificatePinningEnabled:YES]
Run Simplenote

Verify the console logs. TrustKit should get initialized, and sync'ing should be working fine.
Verify Signatures!

Extract the PEM:
openssl s_client -showcerts -host api.simperium.com -port 443
Save the first certificate *.simperium.cominto a .pem file.
Calculate the Public Key Hash
./External/TrustKit/get_pin_from_certificate.py certificate.pem
Verify that the key included in SPEnvironment.m matches

Appears to work wonderfully, @jleandroperez!

Thank you sir!!


Fix AWS IAM User Creation

Description
This pr fixes a bug that prevents two EKS clusters to re-do an in-band peering after the unpeering
Fixes #(issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[ ] Test A
[ ] Test B

/test

/test

/rebase test=true

/test

/rebase

/merge


Startup script / profiles

Currently it's a bit of a pain to run omnibus since you need to start a handful of independent processes. It would be good to have a single script at the root of the repository that can start different 'profiles' such as texas, mission control, everything, etc.

I can work on this!


update to Springboot3

What's changed?
update to Springboot3
Checklist

[ ]  I have read the Contributing Guide
[ ]  I have written the necessary doc or comment.
[ ]  I have added the necessary unit tests and all cases have passed.

👍👍👍

@zqr10159 SpringBoot3是否依赖Jdk17？

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑🤝🧑👫🧑🏿🤝🧑🏻👩🏾🤝👨🏿👬🏿

@zqr10159 Does SpringBoot3 depend on Jdk17?

是的，必须jdk17以上发自我的 iPhone在 2023年9月28日，18:11，进击的阿晨 @.***> 写道：
@zqr10159 SpringBoot3是否依赖Jdk17？
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

@zqr10159 SpringBoot3是否依赖Jdk17？

是的，必须17以上

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑🤝🧑👫🧑🏿🤝🧑🏻👩🏾🤝👨🏿👬🏿

@zqr10159 Does SpringBoot3 depend on Jdk17?

Yes, must be 17 or above


Replace istanbul with nyc

Fixes #461

The package-lock.json is suddenly way huger, what's up with that? sudden additional dependencies? or are there now unused packages in there?


Problem with socket configuration

Hi i am trying to use this project but i am getting this error
TypeError: Cannot read property 'prototype' of undefined
    at Object.<anonymous> (<project-path>\omega\node_modules\socket.io\lib\store.js:35:41)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (<project-path>\omega\node_modules\socket.io\lib\manager.js:14:13)
    at Module._compile (module.js:569:30)

+1

@micsun-al this project is using old version of socket.io. so the only solution is you have to downgrade your npm and node version, Or implement new version in this project :-)

I would definitely accept a PR to use modern socket.io or even just plain websockets. It's on my list but I just haven't made the time.

+1 - I have this issue too

Seems to be working now, by commenting out that.io.configure which no longer exists in socket.io:
/lib/tracker.js
tracker.init = function (app, projectDao, realIssueDao) {
	var that = this;
	that.io = sio.listen(app);

	/*
	that.io.configure(function () {
		// excluded websocket due to Chrome bug: https://github.com/LearnBoost/socket.io/issues/425
		that.io.set('transports', ['htmlfile', 'xhr-polling', 'jsonp-polling']);
	});
  */

	issueDao = realIssueDao;
	projectDao.findAll(function (err, projects) {
		_.each(projects, function (project) {
			that.listen(project);
		});
	});
};

Published as 1.1.0.


How can get ico files from exe?

Hi, thanks for your great work! And i have a question, how can get ico files from exe? GetResources() method only return a name and data, i don't know the file's type.

IIRC, the type of the file is part of its "path" which you can see with the list-resources subcommand. You might see something like this
pefile list-resources myfile.exe
3/1/1033
3/2/1033
3/3/1033
3/4/1033
3/5/1033
14/IDI_APPICON/1033
16/1/1033
24/1/1033

The format of that is //, with type=3 being ICON group and 14 APPICON.

IIRC, the type of the file is part of its "path" which you can see with the list-resources subcommand. You might see something like this
pefile list-resources myfile.exe
3/1/1033
3/2/1033
3/3/1033
3/4/1033
3/5/1033
14/IDI_APPICON/1033
16/1/1033
24/1/1033

The format of that is //, with type=3 being ICON group and 14 APPICON.

Thank you!


fix(telescope): mixed up cwd and root dir

The cwd and root dir were mixed up in the description of a few telescope commands.
This fixes the description while keeping the functionality like before.

no, the descriptions were correct. your changes make them wrong


Serializable for webworkers

Wondering about the possibility of this. For now I am just doing data processing on the webworker, but seems like I need to pass back the raw JSON because immutable objects aren't stringify-able. Wondering, whats the feasibility of pushing all of the immutable stuff into a webworker given it needs to be able to be passed back as a string?

Great suggestion. I need to look into web worker serialization a bit more to figure out the best path forward. Today there is not a clear way to serialize and deserialize Immutable collections.

I think one could use transit-js as mechanism to serialize/deserialize:
https://github.com/cognitect/transit-js
https://gist.github.com/Tvaroh/52efbe8f4541ca537908

I thought the main problem would be that immutable collections have functions attached to them, which don't seem to be serializable. But typing that out makes me think that can't be right, you should be able to have the functions held separately. In the end it's all data.
@pedroteixeira that gist looks really interesting. Have you gotten it working? I already have webpack compiling requests inside webworkers working nicely, and immutable.js with flux (but not split into workers). If I could get the final piece (webworkers + immutable) I'd love to release a complete package that encompassed flux + immutable + webworkers + requests as a sort of super-data package for React.

I was wondering today whether or not because of Relay/GraphQL there could be a increased need to serialize immutable data structures between client and server as well as between webworkers.   What would be interesting is to sync content between client and server, similar to how git does it.  Would there be a way to compares hashes between a local immutable structure and remote one and if they are different exchange content until they are the same.  With this approach the render immutable equality check would essentially become *has any content changed in the graph, locally or on the server".  I realize that Immutable.js is simply about immutable in memory persistent data structure in JavaScript but it's hard not to think about how syncing can radically change when using immutable data.

Transit is a great tool, I definitely recommend using it. I'm also considering adding a very simple serialization API to the library

+1 for serialization/deserialization API, I guess I'll go with type+JSON dump of toJS() for now.

+1 from me as well.
transit-js still uses JSON for the js implementation, so I'm not sure how well it would work.
Also, one big problem is that as soon as you serialise immutable data, you immediately lose all the benefits of structural sharing. I don't know nearly enough to be able to actually implement this, but the ideal way to pass data between the main thread and a web worker should work something like this:

Use SharedArrayBuffers to store all the data of an immutable data structure. (easier said than done. These array buffers are typed, and it will be really hard to store variable sized string etc.)
the immutable 'object' is just an object which stores the basic structures and indexes to the SharedArrayBuffer to know where to read what.
When passing data to a web worker, you can give it access to the sharedArrayBuffer and serialise and pass the immutable data structure that points to it.

Now, as long as no one directly tries to mutate the values on the Array Buffer, and uses the library, data will only be appended to Array Buffer and never mutated.
This would be essentially the same semantics as multi-threading in clojure. The one big difference here being that we pretty much need to manage memory manually. (because any shared memory needs to be in SharedArrayBuffers)
So I'm not sure if this is possible/feasible at all. But I wanted to write it down, just in case someone smart like @leebyron thinks its easy!

Some other ideas:
build an extension on top of JSON that has some sort of structural sharing built-in. (Falcor seems to be doing something similar) gzip takes care of duplicate data to a big extent, but it would be nice, never to have to generate a huge string in the first place

TC39 should be pressured into accepting the proposal for immutable data in Javascript. Then we can put pressure to make passing these data structures to web-workers fast using memory sharing, since immutable data is read only, and hence, safe for multi-threading.

I've just published an early version of a module which provides the transit integration https://github.com/glenjamin/transit-immutable-js
I believe transit does make it possible to support internal structural sharing when serialising, but I haven't attempted to look into this yet.

Thank you for reporting this issue and appreciate your patience. We've  notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.

Today there is not a clear way to serialize and deserialize Immutable collections.

I'm actually looking to be able to write Immutable JS structures to disk, from an Electron app (in particular, the Jupyter/IPython notebook). This means I have a combined need of both streaming and serializing.

I'm also considering adding a very simple serialization API to the library

@leebyron Is this still in the works to target for what I'm working on (release for us won't be a while).

@rgbkrk Technically speaking you CAN serialize immutable data. You just can't serialize the structural sharing that you get with immutable. That is an extremely hard problem to solve and I wouldn't expect any resolution on that in the near future.

If you're looking for a serialization method you can use today, I would strongly suggest using transit.js. It's a great library for serialization and you can find write ups on using it with immutable.js.
Better methods for serialization are on the roadmap, but it's unlikely that we will serialize the structural sharing itself, as that can have very tricky implications. Instead we will do something fairly simple and related to what transit.js does

As mentioned above, https://github.com/glenjamin/transit-immutable-js will take care of the glue code between this and transit.

Transit looks like the right case for webworkers, though the format is not the raw JSON I need to write out. I actually want to keep the toJS() structure and write to disk with json.
Currently it looks like this:
fs.writeFile('plots.ipynb', JSON.stringify(notebook.toJS()), 'utf8', errCallback);

notebook above will end up being 10-25 MB at times

Feel a little silly now that I've noticed that immutable objects can be passed straight to JSON.stringify. Thanks for bearing with me. It would be nice for me to be able to stream these directly to a file while being stringified; this will do though.

Hm. I was hit by this recently :(
It's sad that immutable objects are hard to put to webworkers, when immutable objects (in principle) should be easier to share - no need to copy, deal with write access, etc.
What's funny is that I cannot even mark it as Transferable - in principle, immutable object should be Transferable by default :)
Yeah, I can serialize and deserialize, but that triples the memory. I have a large immutable.js object, I cannot afford to serialize and deserialize again, it takes a long time and too much memory. Again it's ironic, since immutability should help to run things in parallel. But in this case, it makes things go more complex :(
Maybe if immutable became first-class citizen in browser :D haha, probably not.

....and it seems @nmn had exactly the same ideas, in 2015. :D ok

Unfortunately this is still an open challenge, but I'm closing this aging issue

wontfix? :( ok then

I don't think it is fixable with today's technology.


Typing documentation is needed

Hi, I see that you have typing api in this version. I am just wondering if this will be implemented in the push chat/message function.
Can you please write a little documentation how to implement this? I want this. Thanks.

What are you referring to?

Like any chatting app, when someone is replying our message, there would be an icon that show us that user is typing. And I see that you have this in the folder: https://github.com/driftyco/ionic-cloud/tree/master/typings

Those are Typescript type definition files. They aren't related to a chat feature.

Upss, I am sorry. But can you give me an idea how to have this in ionic?

This is a question more suited for the Ionic Forums, not the client for the Ionic Cloud.


Python solution for Algorithm Strings Easy -3 Issue#603

Solved issue #603
In Language- Python

[x] Updated README Link
[x] Added code with comments

Thanks for contributing!

Resolve conflicts, update README

I have resolved conflicts , please check.


Multi-GPU parallel training leads to model output dimension errors.  output==>(Batch_size*N_GPU)

hi, can you provide a test script?


Subtitle URL

Checklist

[x] I'm reporting a feature request
[X] I've verified that I'm running youtube-dl version 2020.03.24
[X] I've searched the bugtracker for similar feature requests including closed ones

Description

Would be nice to be able to insert a subtitle URL manually when downloading a video. This is useful on videos that aren't on Youtube, but there are available subtitles, that can be merged into the end result similar to how it is done on YT.
Just ask if you got any questions. Will do my best to explain/answer.

simply post-process the resulting file with a tool that you prefer.

simply post-process the resulting file with a tool that you prefer.

Oh well. Alright,, thanks for the reply.


AWS::EC2::Route should accept Token[CidrBlock] as DestinationCidrBlock

Currently it only accepts a literal CidrBlock.

Awesome, thank you, we will merge.
Yeah I wonder if longer term I should refactor this whole mechanism so you can always pass an amazon function to anything? I wonder if there are any places we should enforce NOT being able to pass an amazon function..

merged into develop, thank you Shimin!


feat: Improve pipeline view

⭐ Improve pipeline view
💄 UI improvements:

Add checkbox to follow logs. Fix #17.
Add sticky bar with links and options (for the moment, checkbox to follow logs). Fix #16.
Add line number and anchor. The UI will scroll down to the good line number. Fix #15.
Logs are in a light color theme => I will create 2 different color theme and let the user choose 😉.
Refresh colors (red, green, blue) with something softer.

👨💻 Code improvements:

Rewrite JS file (To prepare step by step the architecture with a bundler, maybe a lib/framework)
Rewrite CSS by adding vars (To have some consistency in our code)

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign florianorpeliere
You can assign the PR to them by writing /assign @florianorpeliere in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: vbehar
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [vbehar]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


feat: rollback across --replace (and make sure that to append to release history)

Once the new storage backend is complete, we should support the following scenario:

run helm install -n foo
run helm delete foo
run helm install -n foo --replace

From there, any history operation (like helm rollback) should be able to access both the first release of foo and the re-used foo.
In other words, when a --replace operation is done, it should append to the history for foo, not delete and replace it.

#1456


LC0015 and eXecute permissions on Tables

The LC0015 rule warns if you are missing the execute (X) permissions on pages, codeunits etc., which is great!
But for tables it seems as if only the TableData is being checked.
I think that the execute permissions on Table should be checked as well, so that both TableData and Table must be defined in at least one PermissionSet for each object in the extension.

To be honest, I never heard about execute permissions on tables.
What does it do? I did not find details in the docs

What does it do?

I'm not completely sure on this myself, but I assume that it blocks code execution, just as it would do for codeunits. Maybe it also blocks the user from running the table via the URL. I do not know about any documentation on it either, and I haven't dug enough into it to be completely sure on how that works.
Up till now we've relied on that the user has execute permissions on all objects, and we only added TableData to our PermissionSets.
The PermissionSet 444 "BaseApp Objects - Exec" in the BaseApp is included in the D365 permission sets that most user got out-of-the-box, so our approach with just assigning TableData permissions has worked just fine.
permissionset 444 "BaseApp Objects - Exec"
{
    Access = Internal;
    Assignable = false;

    Permissions = codeunit * = X,
                  table * = X,
                  page * = X,
                  report * = X,
                  query * = X,
                  xmlport * = X;
}

But LC0015 got me thinking a bit more about this, and we ended up with that we will add execute permissions to all objects to the PermissionSets in our AppSource apps, not relying on that the user has execute permissions on everything. While implementing this I noticed that LC0015 did not warn on missing execute permissions on Table, hence this issue.

I have tested it. If you do not have the execute permission for tables, you can not call procedures on it.
Thanks for reporting!

Should be fixed in the latest prerelease

This now works, thanks!


WIP: Improve the Verilog to XML conversion process

Generate direct pins to pin <interconnect>
Better detection of clocks and combination output.
Adding tests for the output (based on the VtR timing tutorial).
Use the XML format change in https://github.com/SymbiFlow/symbiflow-arch-defs/pull/183 to allow multiple instances of a cell type.

@mithro I have started to deal with the issues in this PR. I cannot create a PR to your forked repo with the automerge though, because the mithro:vlog-to-model-tests branch is out of date with the current Symbiflow:master branch. Is it possible for you to rebase your 'vlog-to-model-tests with the current upstream so that I can issue the PR?


Remove shadow from alternative button icons

:tada: This issue has been resolved in version 0.12.10 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add examples for expected conditions

see https://github.com/angular/protractor/pull/2279

closed with https://github.com/angular/protractor/commit/23c1ed4a2cdb33f8d1712f3d8d6ad809ce69f0ea


Deploy signing fails on cspr.live and then passes without intervention

When transferring tokens with cspr.live, after getting to the last page to sign with Casper Signer, the service returns the following error:

This behavior repeated itself 3 times in a row, when trying to sign the same deploy. After switching to another tab and coming back two minutes later, that same action passed correctly without any intervention (no data of the deploy was changed, signer state did not change, etc.)
Deploy in question:
https://cspr.live/deploy/30d3d3747b9cbd3e322eb4e333df612e75caea65d6b3119cf5790aef26c69699

@goral09 @George-cl - this is similar to what we saw earlier - https://app.zenhub.com/workspaces/ecosystem-607825932ec3470014676645/issues/casper-ecosystem/signer/127


MAVSDK-Python apython stuck and server waiting

Wanted to connect to a Mission Planner Simulation to do the basics of arm, take-off and land.
I have little experience with Python so I followed a guide: Link
Using the "apython" thing, I tried to connect many times, to no avail.
And now it's stuck and have to close the terminal every time I try it.
How I'm opening the server: mavsdk_server_win32 -p 50051
Result:
["Time"|Info ] MAVSDK version: v1.4.12
["Time"|Info ] Waiting to discover system on udp://:14540...
Waits forever.
What I do in apython:

from mavsdk import System
drone = System(mavsdk_server_address="localhost, port=50051")
await drone.connect(system_address="udp://:14540")

Stays stuck right there.
I use Windows 10 and Python 3.11
What am I doing wrong?
Please help.

Don't know much about Mission Planner but I'm asuming it's this thing that says TCP and 115200.

I'll try to fiddle with the options and see if I can change those to UDP and 14540.

Doesn't the Ardupilot SITL listen on TCP 5790 by default, or something like this?
You could try something like this to connect MAVSDK to it:
mavsdk_server_win32 -p 50051 tcp://<IP_ADDRESS>:5790

5790 gave a socket error (?)
5760 is waiting.
Changed the connect to: await drone.connect(system_address="tcp://<IP_ADDRESS>:5760").
Stuck again.


hello

Fixes
Checklist

[ ] I have made a material change to the repo (functionality, testing, spelling, grammar)
[ ] I have read the [Contribution Guide] and my PR follows them.
[ ] I updated my branch with the master branch.
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation about the functionality in the appropriate .md file
[ ] I have added in line documentation to the code I modified

Short description of what this PR does:

If you have questions, please send an email to Sendgrid, or file a Github Issue in this repository.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.18 out of 19 committers have signed the CLA.:white_check_mark: osantana:white_check_mark: hbbq:white_check_mark: Strum355:white_check_mark: mikeclark:white_check_mark: hydrosquall:white_check_mark: ladhadha:white_check_mark: jtemporal:white_check_mark: thinkingserious:white_check_mark: ciceropablo:white_check_mark: matheusvsantos:white_check_mark: thepriefy:white_check_mark: thegenuinegourav:white_check_mark: pushkyn:white_check_mark: xerosanyam:white_check_mark: shyshin:white_check_mark: divyam3897:white_check_mark: jrszilard:white_check_mark: xxryan1234:x: mbernierYou have signed the CLA already but the status is still pending? Let us recheck it.


Use ReadOnlySpan optimization for static data in Kestrel HTTP2 Connection

Related to #7422

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: ycrumeyrolle sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Closing as https://github.com/aspnet/AspNetCore/pull/14447 supercedes it. Sorry we missed this one, thanks for the contribution, but the linked PR (#14447) covers a few more cases.


feat(secret): add rw_catalog.rw_secrets table

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
add rw_catalog.rw_secrets table
One problem is secret backend was encrypted. So no backend info in the system table. @tabVersion

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

One problem is secret backend was encrypted. So no backend info in the system table

Let's discuss in slack channel.

Please mark it as user-facing and add some release notes for it.


Recommendation

This could work again if you would put proxy rotation from text file maybe? Correct me if im wrong but i think that could fix it

yep i will check

can i get your telegram ?

sure its @jdysk but i prefer discord sam1e#7777 if you dont mind but otherwise it doesnt matter :D

oops, mb its @sam1eee actually

Adding the proxy function is useless.
Because it will spam and your requests are received from IPs without a useragent (the agent user must be dynamic) and many other functions
If you want something that makes "real" views without risking closing your account or deleting video, and that would really help with promotion.
It would be a script based on browser emulator, traffic source to be spoofed, random useragents, etc.
timeout so you don't spam with views, because it's useless
a good tool is if someone can create a tool like this https://hackforums.net/showthread.php?tid=6197797

its useless to use tiktok tokens and other shit bcs the api used is not a public api
and i made a really cool one request look real
with a ton of useragent <3
(i will post soon)

Upload new version


Uninstall existing gesture recognizers when calling setupCollectionView

There is a behaviour on the current iOS version (11.4, not sure when this behaviour started) where if a collection view's layout is set after initialization - instead of it being passed inside init(frame:collectionViewLayout:) - the collectionView property will be set twice.
That is, if you do this
let collectionView = UICollectionView(
    frame: .zero,
    collectionViewLayout: UICollectionViewFlowLayout()
)
collectionView.collectionViewLayout = LXReorderableCollectionViewFlowLayout()

instead of this
let collectionView = UICollectionView(
    frame: .zero,
    collectionViewLayout: LXReorderableCollectionViewFlowLayout()
)

KVO will cause setupCollectionView to be called twice. Consequently the stored panGestureRecognizer is replaced with a new one, but the old one is still listening to gestures on the collection view.
This breaks scrolling, because scrolling over the collection view when self.selectedItemIndexPath is nil should not trigger handlePanGesture, but it does because this
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
    if ([self.panGestureRecognizer isEqual:gestureRecognizer]) {
        return (self.selectedItemIndexPath != nil);
    }
    return YES;
}

returns true for the replaced (but still listening) pan gesture recognizer.

I'm seeing this too, what's your solution @acruis ?

For now I'm working around it by only injecting the layout in the init (basically the snippet below "instead of this").
If you have to set the collectionViewLayout manually then...I'm not sure there's much you can do. The layout does expose its gesture recognizers but setupCollectionView sets the ivars directly instead of calling the property setters, which means you can't rely on KVO.
I have some wild hacks, but none of them are that nice:

Since the KVO method has a check for if (self.collectionView != nil) {, you can subclass LXReorderableCollectionViewFlowLayout and override the getter of collectionView, which lets you run some code before the gesture recognizers go stale, something like:

class CustomFlowLayout: LXReorderableCollectionViewFlowLayout {
    var settingCollectionView: Bool = false
    override var collectionView: UICollectionView? {
        let collectionView = super.collectionView
        if let gestureRecognizer = self.panGestureRecognizer, self.settingCollectionView {
            collectionView?.removeGestureRecognizer(gestureRecognizer)
        }
        return collectionView
    }
}

...

// (when setting the flow layout)
let reorderableFlowLayout = CustomFlowLayout()
reodrerableFlowLayout.settingCollectionView = true
collectionView.collectionViewLayout = reorderableFlowLayout
reorderableFlowLayout.settingCollectionView = false

I haven't tried this myself, so I'm not sure if it even works though.

You might also be able to subclass UICollectionView to override the addGestureRecognizer call to somehow keep track of existing gesture recognizers and remove stale ones accordingly, but if you go that far you might as well just make copies of the collection view and switch between them when you need to change the layout.


Update to tabletojson.js : Adding An Option

Proposing a new option: countDuplicateHeadings
This option, when set to false, prevents the script from counting duplicate column headings.
This is useful in particular cases, especially when the tables don't have a simple horizontal set of headings and when they are badly structured.

Sorry this has fallen by the wayside, will take a look.

I'm going to have to close this as I left it too long and it's now out of sync too far with master (and I just accepted yet another conflicting overhaul that was sorely needed).
I'm going to make it a feature request though as it's a good idea!
Thank you for making this and sorry for not accepting it sooner. This was entirely down to me not having tests and me wanting to be wary of not breaking it for others.


Installing to a shared hosting enviroment

I asked my webhost to install this on a subdomain. They tried but could not with the following comment
"However, it turned out that the application is developed to work with the local host or the IP Address of the Server which is not possible since you are using one of our Shared Hosting Environments. Another option is for you to contact the developer of the application and ask how can we configure it to work under a custom URL"
Is it possible to get this installed in a shared environment?

Hello!
Yes, it is possible to install to a shared hosting.
Steps may vary depend on specific shared hosting, but common steps are:

Create new site project
Git clone sesdashboard into it (or upload files manually)
Run $ composer install to download packages
If your web hosting web root is not /public, create a symlink to it. For example, my shared hosting provider has public_html/ folder ad web root for index.php by default. So it will be
$ ln -s ~/sesdashboard/public ~/sesdashboard/public_html
At the moment this package doesn't include .htaccess config file for Apache servers, but you could download default from https://github.com/symfony/recipes-contrib/blob/master/symfony/apache-pack/1.0/public/.htaccess and place it into public/ folder. In the future I'll include it into this repo.
Copy .env file into .env.local and fill MySQL parameters and change APP_ENV to prod

Other steps like db install and user creation are the same: https://github.com/Nikeev/sesdashboard#regular-installation
This should work.

Hello!
Yes, it is possible to install to a shared hosting.
Steps may vary depend on specific shared hosting, but common steps are:

Create new site project
Git clone sesdashboard into it (or upload files manually)
Run $ composer install to download packages
If your web hosting web root is not /public, create a symlink to it. For example, my shared hosting provider has public_html/ folder ad web root for index.php by default. So it will be
$ ln -s ~/sesdashboard/public ~/sesdashboard/public_html
At the moment this package doesn't include .htaccess config file for Apache servers, but you could download default from https://github.com/symfony/recipes-contrib/blob/master/symfony/apache-pack/1.0/public/.htaccess and place it into public/ folder. In the future I'll include it into this repo.
Copy .env file into .env.local and fill MySQL parameters and change APP_ENV to prod

Other steps like db install and user creation are the same: https://github.com/Nikeev/sesdashboard#regular-installation
This should work.

Superb, thanks Nikeev.
I have shared these guidelines with my host, I'll report back on how they get on.

Superb, thanks Nikeev.
I have shared these guidelines with my host, I'll report back on how they get on.

Successfully installed but the UI seems very rudimentary when compared with screen grabs on https://sesdashboard.com/
I suspect something has not installed correctly.

Successfully installed but the UI seems very rudimentary when compared with screen grabs on https://sesdashboard.com/
I suspect something has not installed correctly.

As we contacted by email, an issue was resolved.

As we contacted by email, an issue was resolved.


fix some deprecation warnings

Closing this since I committed too much to this branch. You could cherry-pick https://github.com/arup-group/pam/pull/171/commits/dfe97953cdcc3893831ee64b993c05618d14c44f though.


Allow running the catalog and the API at the same time

Description
This fixes an issue where you could not run the API and the catalog at the same time due to conflicting postgres ports. This PR fixes the issue by changing the host port for the catalog postgres so that it no longer conflicts with the API postgres.
Tests
Checkout this branch and try running dc up -d for the catalog and the API together.
Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main or master).
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[N/A] I added or updated tests for the changes I made (if applicable).
[N/A] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Closing in favor of https://github.com/WordPress/openverse-catalog/pull/145 so that the CI actually works.


fix(#6) - Changes for generator README.md and other fixes

Closes #6
Added fix for .gitignore file and fixed README

@gisumit the PR is updated and waiting on your review


384 documentation issues

Description
DOC
Improves docs for a couple of functions. Partially addresses tensorflow/tfjs#384

For repository owners only:
Please remember to apply all applicable tags to your pull request.
Tags: FEATURE, BREAKING, BUG, PERF, DEV, DOC, SECURITY
For more info see: https://github.com/tensorflow/tfjs/blob/master/DEVELOPMENT.md

This change is

closes tensorflow/tfjs#327

Review status: 0 of 2 files reviewed at latest revision, all discussions resolved.

src/ops/array_ops.ts, line 680 at r1 (raw file):

   * @param numChannels The number of channels of the output tensor.  Defaults to
   * 3 (ignores alpha channel of input image)

add period at the end

Comments from Reviewable

Review status: 0 of 2 files reviewed at latest revision, all discussions resolved, some commit checks failed.

src/ops/array_ops.ts, line 680 at r1 (raw file):
Previously, dsmilkov (Daniel Smilkov) wrote…
add period at the end

Done

Comments from Reviewable


Create TypeConformanceVisitor

Creates a TypeConformanceVisitor an associated spec. This visitor collects conformance information with no additional logic. Since the TypeConformanceAnalyzer has significantly more involved logic I haven't updated it. This type will be a building block for a future TypeDeclarationVisitor.
The future TypeDeclarationVisitor will utilize both TypeConformanceVisitor and GenericRequirementVisitor, and will return types that it found, as well as the conformance and generic requirements set up in those types. But that's a future PR. You could also imagine this type being used by separate StructDeclarationVisitor, ClassDeclarationVisitor, etc. But again, I'm getting ahead of myself.

I think we'd want to find all the type inheritance clauses inside too here?

@fdiaz can you give me an example of the information we're not currently grabbing? I'm pretty sure we are grabbing type inheritance clauses.

I think we'd want to find all the type inheritance clauses inside too here?

@fdiaz can you give me an example of the information we're not currently grabbing? I'm pretty sure we are grabbing type inheritance clauses.

I'll merge when CI is green because I want to keep building on top of this (and future PRs may help explain what I'm trying to describe here). But I do want to continue discussing the unresolved comments.

I'll merge when CI is green because I want to keep building on top of this (and future PRs may help explain what I'm trying to describe here). But I do want to continue discussing the unresolved comments.

@dfed all good! Your explanation makes total sense to me 😉

@dfed all good! Your explanation makes total sense to me 😉


$attrs incorrectly overriding props

Vue version
3.2.37
Link to minimal reproduction
https://stackblitz.com/edit/github-egwnjl?file=app.vue,components%2FComponent1.vue,components%2FComponent2.vue
Steps to reproduce
A component has a prop defined with the same name as an inherited attr
What is expected?
I would expect the defined prop to take precedence over the inherited attr
What is actually happening?
The inherited attr is actually overriding the defined prop
System Info
No response
Any additional comments?
There is a workaround to disable inheritance inheritAttrs: false and bind without the conflicting attr v-bind="attrsWithoutBar" however as you can see below it is a bit hacky:
computed: {
  attrsWithoutBar() {
    //this is a hack to ensure the `bar` attr
    //doesnt override the `bar` prop
    const attrsCloned = { ...this.$attrs }
    return delete attrsCloned.bar && attrsCloned
  },
}

closing as duplicate of #6325 and #9039
https://github.com/vuejs/core/pull/8976 will fix this


The list of available types is missing

In the docs on type annotations, there is no actual list of available type names.
In the table presented on this page, three example type names are given:
{boolean}
{Window}
{goog.ui.Menu}

We see string and number elsewhere, but I never would have guessed Window or goog.ui.Menu as basic types. Can we get a list of available type names?

There are a few types built into the language itself (string, Function, Array, etc) and many others that are present in browsers (Document, Window, HTMLElement, etc.)
All these are listed in what we call "externs" files, as described at https://developers.google.com/closure/compiler/docs/api-tutorial3
See for example https://github.com/google/closure-compiler/blob/master/externs/es3.js and https://github.com/google/closure-compiler/blob/master/externs/es5.js -- browser APIs are under https://github.com/google/closure-compiler/tree/master/externs/browser
goog.ui.Menu is defined in the Closure Library (https://github.com/google/closure-library). Docs for it are at https://google.github.io/closure-library/api/goog.ui.Menu.html
Of course if you use some other library (jQuery, Polymer, whatever) then the library maintainer will hopefully have docs for the types that library provides. Those types will be provided to the compiler either because you're passing the library itself to the compiler, or passing externs for that library to the compiler. We have externs for some well-known libraries in https://github.com/google/closure-compiler/tree/master/contrib/externs


🐞 - tui-svg under tuiIconButton crops SVG icons which are projected via innerHTML

Playground Link
https://stackblitz.com/edit/angular-pdt7bj?file=src%2Fapp%2Fapp.component.html,src%2Fapp%2Fapp.component.less&hideExplorer=0
Description
An icon loaded from the separate server and inserted as innerHTML within a tuiIconButton becomes cropped

Angular version
15
Taiga UI version
3.27.0
Which browsers have you used?

[X] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge

Which operating systems have you used?

[ ] macOS
[X] Windows
[ ] Linux
[ ] iOS
[ ] Android

use tuiIconLink instead of tuiIconLinkLarge for size="xs"

fair enough

@splincode and I see that there is overflow: visible for .t-svg but no for .t-src svg which seems must be the same as svg is 100% expected in the innerHTML$ stream


Cargo.toml fix (versino -> version)

/land

@davidiw I actually don't understand why we specify a version when we import via path, I'm almost 100% sure that it does nothing.


[Question] Live HLS Stream not playing from start of stream

I have a video stream from a camera recorded via ffmpeg on some server in HLS format (m3u8), and i want to view the recording in my app - seekable from the start of the recording until the currently recorded frames.
Loading the m3u8 file into the player only loads the last couple of seconds into the player, and i am not able to seek back to the beginning of the stream - even though the m3u8 file contains all fragments and looks like

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.042700,
video-00000.m4s
#EXTINF:5.999978,
video-00001.m4s
#EXTINF:4.000556,
video-00002.m4s
#EXTINF:6.002178,
video-00003.m4s
...
(ongoing without #EXT-X-ENDLIST tag)

By contrast, i can load the same m3u8 file into VLC app and get access to the full stream, including the very beginning of the recording.
How to achieve this with media_kit player?

How does mpv work with your HLS stream?

I now just tested the Android app version - it is showing the same behavior: just showing the last couple of seconds back from the current end of the stream.
So this indicates that the "issue" is deeper down? Is there some configuration option for mpv to tweak the behavior?

Does the following work?
final player = Player();

if (player.platform is libmpvPlayer) {
  await (player.platform as dynamic).setProperty(
    'demuxer-lavf-o',
    'live_start_index=0',
  );
}

await player.open(/* source */);

We have this setProperty API exposed which allows fiddling with libmpv/FFmpeg specific properties & options.
Adding few links:

https://mpv.io/manual/stable/)/manual/stable/
https://ffmpeg.org/ffmpeg-formats.html#hls-1
https://stackoverflow.com/questions/40009446/

Please close the ticket if your problem is resolved.

Perfect! It is now loading from the start of the recording.
I actually previously tried to make use of the the live_start_index flag in ffmpeg (resp. also patch the m3u8 file by hand accordingly), but nothing worked. Now, setting the property directly on the player is also fine for me.
Many thanks, in particular for the quick response, i will close this ticket.

All resolved. Many thanks.

Hi @alexmercerind ,
i need to state a follow-up question: The stream is now started from the beginning. Great, as i requested.
But now the 'duration' property of the player only seem to reflect the already buffered snippets, and not the currently remaining available time.
So if the recording is already 30 minutes long, the player duration still indicates only about 2.5 minutes (i guess depending on buffer size), and hence there is no chance to easily seek to minute 27 or to the end of the stream.
In principle, the information about the duration is present in the m3u8 file as given above, but i couldn't figure out some properties of mpv that would make use of that information.
Do you know a solution of this? Thanks in advance.

I'm not very familiar with this either.
I'm sure you'll find likely find some mpv configuration that would work. Parsing m3u8 yourself doesn't look very tough either.
Sorry... I happen to be busy with a few other things in the project; not really dealing with specifics as such at the moment.

Currently, only support is provided for the API exposed by the Player class.
The users are free to use the setProperty API & use their knowledge. I can't be sure of everything/anything done after that.

Ok, then i will dive deeper into mpv and in case i find a solution, i will post it here.

A better place to talk can be our Discord.


Add url and api_key to ollama

See Usage page
Motivation

Before this PR, the url for ollama is only read from the environment. This is a needless restriction that will be troublesome in settings where passing an environment variable is complex or impossible (e.g., the Cloud)
Before this PR, ollama did not support an api_key. While ollama does not natively support API keys, a common practice is to put a publicly accessible ollama server behind a proxy to support authentication.

Skip changelog
ollama embedder was added to v1.8

Added usage in PRD


Python Execute SQL Suggested Clarification with "Python dataframe"

Hello - thank you for the amazing work on DuckDB and related documentation found here! I recently noticed a minor issue with some of the documentation and wanted to suggest a correction.
https://duckdb.org/docs/guides/python/execute_sql currently includes the following sentence:
Use df if you would like the result to be returned as a Python dataframe instead.

This may be improved for clarity with the following (avoiding an implied native Python dataframe format):
Use df if you would like the result to be returned as a Python Pandas dataframe instead.

Please let me know if you have any questions or if I may clarify the above.

Sounds good. Feel free to send a PR if you spot any inaccuracies or anything unclear in our documentation


Should fontMath be Py3 only?

Seems like it is time.

Can we make a final release for 2.x?

yes, we can. Really this is more about the test environments than anything else.

Version 0.7.0 includes the fixes for angles and the strict handling, and doesn't change things that mean py3 is required. I'm going to push 0.8.0, which will be py3 only.

Closed by version 0.8.0


add tests for handling of empty pandas objects in constructors

[x] Closes #697
[x] Tests added
[ ] Fully documented, including whats-new.rst for all changes and api.rst for new API

Hello @jhamman! Thanks for submitting the PR.

In the file xarray/tests/test_dataarray.py, following are the PEP8 issues :

Line 2827:1: W293 blank line contains whitespace

In the file xarray/tests/test_dataset.py, following are the PEP8 issues :

Line 2989:39: E203 whitespace before ':'

Thanks Joe

Thanks @jhamman !


NGXS Firestore Plugin

Link to project (GitHub): https://github.com/ngxs-labs/firestore-plugin
Describe the project in 2-3 sentences: NGXS Firestore plugin helps you integrate Firestore and NGXS. It uses @angular/fire under the hood and provides a wrapper service with CRUD operations methods and easy integration with NGXS actions. In addition provides tracking of active connections.
Why would Firebase developers be interested in this project?: It's an easier way to integrate NGXS and Firebase, and helps you manage connecting query results with NGXS state
Have you added a .opensource/project.json file to your site: Yes
https://github.com/ngxs-labs/firestore-plugin/blob/master/.opensource/project.json

@joaqcid looks great, happy to add it!
cc @jamesdaniels who will probably think this is cool.

fixed https://github.com/firebase/firebaseopensource.com/commit/c54a2600ccc0e25f8ff80562c151db0a13e6cdb2, you'll be on the site within 24h