[#noissue] Fix potential NPE

Codecov Report

Merging #7987 (30205ec) into master (8f8f562) will increase coverage by 0.01%.
The diff coverage is 14.28%.

:exclamation: Current head 30205ec differs from pull request most recent head 4bfc507. Consider uploading reports for the commit 4bfc507 to get more accurate results

@@             Coverage Diff              @@
##             master    #7987      +/-   ##
============================================
+ Coverage     39.14%   39.16%   +0.01%
+ Complexity    11119    11118       -1
============================================
  Files          3195     3195
  Lines         88505    88505
  Branches      10207    10206       -1
============================================
+ Hits          34649    34661      +12
+ Misses        50661    50652       -9
+ Partials       3195     3192       -3

Impacted Files
Coverage Δ

...npoint/bootstrap/config/ProfilePropertyLoader.java
21.87% <0.00%> (+0.33%)
:arrow_up:

...pinpoint/web/service/FilteredMapServiceOption.java
56.86% <100.00%> (+0.86%)
:arrow_up:

...pc/server/LoggingServerMessageListenerFactory.java
80.95% <0.00%> (-9.53%)
:arrow_down:

...rc/main/java/com/navercorp/pinpoint/test/Item.java
68.51% <0.00%> (-7.41%)
:arrow_down:

.../navercorp/pinpoint/rpc/client/RequestManager.java
62.31% <0.00%> (-7.25%)
:arrow_down:

...orp/pinpoint/profiler/sender/NioUDPDataSender.java
62.82% <0.00%> (-5.13%)
:arrow_down:

...tor/metric/datasource/DefaultDataSourceMetric.java
74.19% <0.00%> (-3.23%)
:arrow_down:

...java/com/navercorp/pinpoint/rpc/DefaultFuture.java
69.29% <0.00%> (-1.76%)
:arrow_down:

...om/navercorp/pinpoint/rpc/codec/PacketDecoder.java
51.66% <0.00%> (-1.67%)
:arrow_down:

...pinpoint/profiler/monitor/DeadlockMonitorTask.java
20.93% <0.00%> (-1.17%)
:arrow_down:

... and 8 more

Continue to review full report at Codecov.

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


Issues running ./cme and crackmapexec

Hello,
Describe the bug
I am testing both the stand alone binary and the crackmapexec installation (using apt install)
To Reproduce
Running the binary (./cme) throws this no matter the parameters:
└─# ./cme
Traceback (most recent call last):
  File "/opt/./cme/_bootstrap/__init__.py", line 74, in import_string
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/cme/__init__.py", line 1, in <module>
    from gevent import monkey
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/__init__.py", line 86, in <module>
    from gevent._hub_local import get_hub
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_hub_local.py", line 101, in <module>
    import_c_accel(globals(), 'gevent.__hub_local')
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_util.py", line 115, in import_c_accel
    mod = importlib.import_module(cname)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'gevent._gevent_c_hub_local'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/./cme/_bootstrap/__init__.py", line 74, in import_string
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/cme/__init__.py", line 1, in <module>
    from gevent import monkey
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/__init__.py", line 86, in <module>
    from gevent._hub_local import get_hub
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_hub_local.py", line 101, in <module>
    import_c_accel(globals(), 'gevent.__hub_local')
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_util.py", line 115, in import_c_accel
    mod = importlib.import_module(cname)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'gevent._gevent_c_hub_local'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/opt/./cme/__main__.py", line 3, in <module>
  File "/opt/./cme/_bootstrap/__init__.py", line 233, in bootstrap
  File "/opt/./cme/_bootstrap/__init__.py", line 79, in import_string
  File "/opt/./cme/_bootstrap/__init__.py", line 79, in import_string
  File "/opt/./cme/_bootstrap/__init__.py", line 57, in import_string
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/cme/__init__.py", line 1, in <module>
    from gevent import monkey
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/__init__.py", line 86, in <module>
    from gevent._hub_local import get_hub
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_hub_local.py", line 101, in <module>
    import_c_accel(globals(), 'gevent.__hub_local')
  File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_util.py", line 115, in import_c_accel
    mod = importlib.import_module(cname)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'gevent._gevent_c_hub_local'

Running the installed version works fine with password/hash authentication, but breaks once the --kerberos option is used:
└─# proxychains -q crackmapexec smb <IP_ADDRESS> --kerberos                                                                   1 ⨯
SMB         <IP_ADDRESS>   445    DC01          [*] Windows 10.0 Build 17763 x64 (name:DC01) (domain:corp.com) (signing:True) (SMBv1:False)
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/impacket/krb5/kerberosv5.py", line 60, in sendReceive
    s.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/crackmapexec", line 33, in <module>
    sys.exit(load_entry_point('crackmapexec==5.1.4.dev0', 'console_scripts', 'crackmapexec')())
  File "/usr/lib/python3/dist-packages/cme/crackmapexec.py", line 272, in main
    asyncio.run(
  File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/usr/lib/python3/dist-packages/cme/crackmapexec.py", line 102, in start_threadpool
    await asyncio.gather(*jobs)
  File "/usr/lib/python3/dist-packages/cme/crackmapexec.py", line 68, in run_protocol
    await asyncio.wait_for(
  File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
    return await fut
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/lib/python3/dist-packages/cme/protocols/smb.py", line 121, in __init__
    connection.__init__(self, args, db, host)
  File "/usr/lib/python3/dist-packages/cme/connection.py", line 59, in __init__
    self.proto_flow()
  File "/usr/lib/python3/dist-packages/cme/connection.py", line 95, in proto_flow
    if self.login() or (self.username == '' and self.password == ''):
  File "/usr/lib/python3/dist-packages/cme/connection.py", line 158, in login
    if self.kerberos_login(self.aesKey, self.kdcHost): return True
  File "/usr/lib/python3/dist-packages/cme/protocols/smb.py", line 271, in kerberos_login
    self.conn.kerberosLogin('', '', self.domain, self.lmhash, self.nthash, aesKey, kdcHost)
  File "/usr/lib/python3/dist-packages/impacket/smbconnection.py", line 348, in kerberosLogin
    return self._SMBConnection.kerberosLogin(user, password, domain, lmhash, nthash, aesKey, kdcHost, TGT,
  File "/usr/lib/python3/dist-packages/impacket/smb3.py", line 678, in kerberosLogin
    tgs, cipher, oldSessionKey, sessionKey = getKerberosTGS(serverName, domain, kdcHost, tgt, cipher, sessionKey)
  File "/usr/lib/python3/dist-packages/impacket/krb5/kerberosv5.py", line 425, in getKerberosTGS
    r = sendReceive(message, domain, kdcHost)
  File "/usr/lib/python3/dist-packages/impacket/krb5/kerberosv5.py", line 62, in sendReceive
    raise socket.error("Connection error (%s:%s)" % (targetHost, 88), e)
OSError: [Errno Connection error (COMPLYEDGE.COM:88)] [Errno 111] Connection refused

The kerberos ticket is in place and is working fine with all Impacket's tools
Stand alone CME binary version: v5.1.1dev
Installed crackmapexec version: 5.1.6dev
OS: Linux kali 5.9.0-kali1-amd64 #1 SMP Debian 5.9.1-1kali2 (2020-10-29) x86_64 GNU/Linux

How we can help?!!
On Thu, 13 May 2021, 11:33 PM init5-msft, @.***> wrote:

Hello,
Describe the bug
I am testing both the stand alone binary and the crackmapexec installation
(using apt install)
To Reproduce
Running the binary (./cme) throws this no matter the parameters:
└─# ./cme
Traceback (most recent call last):
File "/opt/./cme/_bootstrap/init.py", line 74, in import_string
File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/cme/init.py", line 1, in
from gevent import monkey

File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/init.py", line 86, in
from gevent._hub_local import get_hub

File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_hub_local.py", line 101, in
import_c_accel(globals(), 'gevent.__hub_local')

File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_util.py", line 115, in import_c_accel
mod = importlib.import_module(cname)

File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)

ModuleNotFoundError: No module named 'gevent._gevent_c_hub_local'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/./cme/_bootstrap/init.py", line 74, in import_string
File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/cme/init.py", line 1, in
from gevent import monkey

File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/init.py", line 86, in
from gevent._hub_local import get_hub

File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_hub_local.py", line 101, in
import_c_accel(globals(), 'gevent.__hub_local')

File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_util.py", line 115, in import_c_accel
mod = importlib.import_module(cname)

File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)

ModuleNotFoundError: No module named 'gevent._gevent_c_hub_local'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,

File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)

File "/opt/./cme/main.py", line 3, in
File "/opt/./cme/_bootstrap/init.py", line 233, in bootstrap
File "/opt/./cme/_bootstrap/init.py", line 79, in import_string
File "/opt/./cme/_bootstrap/init.py", line 79, in import_string
File "/opt/./cme/_bootstrap/init.py", line 57, in import_string
File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)

File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 790, in exec_module
File "", line 228, in _call_with_frames_removed
File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/cme/init.py", line 1, in
from gevent import monkey

File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/init.py", line 86, in
from gevent._hub_local import get_hub

File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_hub_local.py", line 101, in
import_c_accel(globals(), 'gevent.__hub_local')

File "/root/.shiv/cme_e41a85cab985f88d51c428f4c4336972a223c722d2c45c2aaefeefa03f421c5a/site-packages/gevent/_util.py", line 115, in import_c_accel
mod = importlib.import_module(cname)

File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)

ModuleNotFoundError: No module named 'gevent._gevent_c_hub_local'
Running the installed version works fine with password/hash
authentication, but breaks once the --kerberos option is used:
└─# proxychains -q crackmapexec smb <IP_ADDRESS> --kerberos                                                                   1 ⨯
SMB         <IP_ADDRESS>   445    DC01          [*] Windows 10.0 Build 17763 x64 (name:DC01) (domain:corp.com) (signing:True) (SMBv1:False)
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/impacket/krb5/kerberosv5.py", line 60, in sendReceive
s.connect(sa)

ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/crackmapexec", line 33, in
sys.exit(load_entry_point('crackmapexec==5.1.4.dev0', 'console_scripts', 'crackmapexec')())

File "/usr/lib/python3/dist-packages/cme/crackmapexec.py", line 272, in main
asyncio.run(

File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)

File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()

File "/usr/lib/python3/dist-packages/cme/crackmapexec.py", line 102, in start_threadpool
await asyncio.gather(*jobs)

File "/usr/lib/python3/dist-packages/cme/crackmapexec.py", line 68, in run_protocol
await asyncio.wait_for(

File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
return await fut

File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)

File "/usr/lib/python3/dist-packages/cme/protocols/smb.py", line 121, in init
connection.__init__(self, args, db, host)

File "/usr/lib/python3/dist-packages/cme/connection.py", line 59, in init
self.proto_flow()

File "/usr/lib/python3/dist-packages/cme/connection.py", line 95, in proto_flow
if self.login() or (self.username == '' and self.password == ''):

File "/usr/lib/python3/dist-packages/cme/connection.py", line 158, in login
if self.kerberos_login(self.aesKey, self.kdcHost): return True

File "/usr/lib/python3/dist-packages/cme/protocols/smb.py", line 271, in kerberos_login
self.conn.kerberosLogin('', '', self.domain, self.lmhash, self.nthash, aesKey, kdcHost)

File "/usr/lib/python3/dist-packages/impacket/smbconnection.py", line 348, in kerberosLogin
return self._SMBConnection.kerberosLogin(user, password, domain, lmhash, nthash, aesKey, kdcHost, TGT,

File "/usr/lib/python3/dist-packages/impacket/smb3.py", line 678, in kerberosLogin
tgs, cipher, oldSessionKey, sessionKey = getKerberosTGS(serverName, domain, kdcHost, tgt, cipher, sessionKey)

File "/usr/lib/python3/dist-packages/impacket/krb5/kerberosv5.py", line 425, in getKerberosTGS
r = sendReceive(message, domain, kdcHost)

File "/usr/lib/python3/dist-packages/impacket/krb5/kerberosv5.py", line 62, in sendReceive
raise socket.error("Connection error (%s:%s)" % (targetHost, 88), e)

OSError: [Errno Connection error (COMPLYEDGE.COM:88)] [Errno 111] Connection refused
The kerberos ticket is in place and is working fine with all Impacket's
tools
Stand alone CME binary version: v5.1.1dev
Installed crackmapexec version: 5.1.6dev
OS: Linux kali 5.9.0-kali1-amd64 #1
https://github.com/byt3bl33d3r/CrackMapExec/issues/1 SMP Debian
5.9.1-1kali2 (2020-10-29) x86_64 GNU/Linux
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/byt3bl33d3r/CrackMapExec/issues/466, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARRRMK5XURYHS57FE6NOOMLTNROV3ANCNFSM443NYLMQ
.

Just tried on more thing, removed the binary and uninstalled the installed version (apt remove) then installed it again using the recommended pipx approach, still works on with password or hash, but with --kerberos it throws this:
Traceback (most recent call last):
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/krb5/kerberosv5.py", line 60, in sendReceive
    s.connect(sa)
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/gevent/_socketcommon.py", line 628, in connect
    raise _SocketError(result, strerror(result))
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/protocols/smb.py", line 121, in __init__
    connection.__init__(self, args, db, host)
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/connection.py", line 47, in __init__
    self.proto_flow()
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/connection.py", line 82, in proto_flow
    self.login()
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/connection.py", line 145, in login
    if self.kerberos_login(self.aesKey, self.kdcHost): return True
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/protocols/smb.py", line 270, in kerberos_login
    self.conn.kerberosLogin('', '', self.domain, self.lmhash, self.nthash, aesKey, kdcHost)
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/smbconnection.py", line 348, in kerberosLogin
    return self._SMBConnection.kerberosLogin(user, password, domain, lmhash, nthash, aesKey, kdcHost, TGT,
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/smb3.py", line 678, in kerberosLogin
    tgs, cipher, oldSessionKey, sessionKey = getKerberosTGS(serverName, domain, kdcHost, tgt, cipher, sessionKey)
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/krb5/kerberosv5.py", line 425, in getKerberosTGS
    r = sendReceive(message, domain, kdcHost)
  File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/krb5/kerberosv5.py", line 62, in sendReceive
    raise socket.error("Connection error (%s:%s)" % (targetHost, 88), e)
OSError: [Errno Connection error (COMPLYEDGE.COM:88)] [Errno 111] Connection refused
2021-05-13T23:51:59Z <Greenlet at 0x7fc58d6536a0: smb(Namespace(threads=100, timeout=None, jitter=None, , <protocol.database object at 0x7fc58d659280>, '<IP_ADDRESS>')> failed with OSError

But where am I going to Del this (apt Remove) I don't understand bro
On Thu, 13 May 2021, 11:55 PM init5-msft, @.***> wrote:

Just tried on more thing, removed the binary and uninstalled the installed
version (apt remove) then installed it again using the recommended pipx
approach, still works on with password or hash, but with --kerberos it
throws this:
Traceback (most recent call last):
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/krb5/kerberosv5.py", line 60, in sendReceive
s.connect(sa)
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/gevent/_socketcommon.py", line 628, in connect
raise _SocketError(result, strerror(result))
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "src/gevent/greenlet.py", line 906, in gevent._gevent_cgreenlet.Greenlet.run
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/protocols/smb.py", line 121, in init
connection.init(self, args, db, host)
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/connection.py", line 47, in init
self.proto_flow()
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/connection.py", line 82, in proto_flow
self.login()
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/connection.py", line 145, in login
if self.kerberos_login(self.aesKey, self.kdcHost): return True
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/cme/protocols/smb.py", line 270, in kerberos_login
self.conn.kerberosLogin('', '', self.domain, self.lmhash, self.nthash, aesKey, kdcHost)
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/smbconnection.py", line 348, in kerberosLogin
return self._SMBConnection.kerberosLogin(user, password, domain, lmhash, nthash, aesKey, kdcHost, TGT,
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/smb3.py", line 678, in kerberosLogin
tgs, cipher, oldSessionKey, sessionKey = getKerberosTGS(serverName, domain, kdcHost, tgt, cipher, sessionKey)
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/krb5/kerberosv5.py", line 425, in getKerberosTGS
r = sendReceive(message, domain, kdcHost)
File "/root/.local/pipx/venvs/crackmapexec/lib/python3.9/site-packages/impacket/krb5/kerberosv5.py", line 62, in sendReceive
raise socket.error("Connection error (%s:%s)" % (targetHost, 88), e)
OSError: [Errno Connection error (COMPLYEDGE.COM:88)] [Errno 111] Connection refused
2021-05-13T23:51:59Z <Greenlet at 0x7fc58d6536a0: smb(Namespace(threads=100, timeout=None, jitter=None, , <protocol.database object at 0x7fc58d659280>, '<IP_ADDRESS>')> failed with OSError
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/byt3bl33d3r/CrackMapExec/issues/466#issuecomment-840900503,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARRRMK65CVSPA4RHMHYQNGTTNRRINANCNFSM443NYLMQ
.

@iloiote I'm sorry, I don't understand your question. DO you have the same issue like me or you're trying to help?

Just I need to know what do you want bacause I don't know
On Fri, 14 May 2021, 12:00 AM init5-msft, @.***> wrote:

@iloiote https://github.com/iloiote I'm sorry, I don't understand your
question. DO you have the same issue like me or you're trying to help?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/byt3bl33d3r/CrackMapExec/issues/466#issuecomment-840901923,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARRRMK2AW5PKI5NHLBZAWSTTNRRZ5ANCNFSM443NYLMQ
.

Try with the FQDN name instead of the IP

I just realized that the tool I installed using pipx is broken as well, it just showed the weird behavior after I rebooted.
└─# proxychains -q crackmapexec smb <IP_ADDRESS> -u john -H 5ad27ee8000951e0669fab25f73f9d8a                                                                                2 ⨯
SMB         <IP_ADDRESS>   445    SQL8            [*] Windows 10.0 Build 17763 (name:SQL8) (domain:bank.local) (signing:False) (SMBv1:False)
SMB         <IP_ADDRESS>   445    SQL8            [-] bank.local\-----BEGIN RSA PRIVATE KEY-----:5ad27ee8000951e0669fab25f73f9d8a STATUS_LOGON_FAILURE
SMB         <IP_ADDRESS>   445    SQL8            [-] bank.local\MIIEpQIBAAKCAQEApDD/vFcPlFAHQyy/3ZDJwlm1X3mgeEUoAr5PfxJzX/TRf2A+:5ad27ee8000951e0669fab25f73f9d8a STATUS_LOGON_FAILURE
SMB         <IP_ADDRESS>   445    SQL8            [-] bank.local\AYlQOgZxBaoOC9CTwJ+7jSkJvjAUq7P5IDZFcLb+hEXUt8DxG37+zm8AwmRLVysF:5ad27ee8000951e0669fab25f73f9d8a STATUS_LOGON_FAILURE
SMB         <IP_ADDRESS>   445    SQL8            [-] bank.local\S/qMRgznQ2JnvuvbhTam6YowbcgQXcCx+a6wAhL/4o4/STwg0Xbm9Hek7sevbWqa:5ad27ee8000951e0669fab25f73f9d8a STATUS_LOGON_FAILURE

Absolutely no idea whats happening at this point

5ad27ee8000951e0669fab25f73f9d8a is a file ;)


Need to group items on order

Feature request:
Current system allows for selling menu items and each menu item is set up differently from one user to another. I created a menu item that represents a plate of food: meat options, side options, condiment options and sauce options. Others create menu items for each option and somehow know what items go on what plate or in what container, etc.
What we cannot do is place those items on a plate or identify which person at a table each item is for.
My request is one of the two below stated features:
1 - that a Plate column be added to items ordered that will accept customer input (due to varying number of people sitting at a table). Then the order outputs will show the items selected for that plate in a group similar to the way item options show today.
2 - convert the Menu Item options system to allow the creation of specific options that are from the menu item table. Rather than a user created list of options, pull the menu items list into the form so we can select other menu items as options. Doing this will allow a restaurant the ability to track inventory for all the options. Current system does not allow for management of inventory (reducing stock when used or chosen) for options like it does for menu items.

Use issues to report bugs, please start a discussion on the forums under Miscellaneous > Feature Requests to submit feature requests.

I did create a feature request on tastyigniter.com: https://forum.tastyigniter.com/d/2146-group-items-on-order-whats-on-a-plate


App crashing on big transaction

Hi. I'm trying run a transaction, that will insert many rows (in this specific case, ~270k rows, on a table with two colmns (numeric, and text with max of 64 charts).

Using db.sqlBatch I have the same behavior.
I'm moving from cordova, to react native, and today I have the same workload on Cordova with SQLite, using cordova-sqlite-storage and I can run this big transactions without problems.
In fact, with my cordova application, I run this transaction in about 10 seconds. Spliting in several transactions here, to be able to manage the dataset without crash the application, I was able to run the same job in 70 seconds.
There is any way to improve performance? I'm doing something wrong?

same problem here

same problem here

I've switch to another library. Problem solved.

which library?


Upgrade to Jackson 2.7.4

Upgrade to Jackson 2.7.4. It's currently the latest stable release. It's also the version used by Dropwizard 0.9.2. This isn't a Dropwizard-specific project, but it does primarily exist for the benefit of dropwizard-mongo. Do this in master and each and every maintenance branch (e.g. 1.2.x, 1.3.x, 2.0.x...).

Done


[boards] Add debug capability to Silabs TB2

Done

Codecov Report

Merging #11211 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #11211   +/-   ##
=======================================
  Coverage   53.11%   53.11%
=======================================
  Files         218      218
  Lines       26871    26871
  Branches     5952     5952
=======================================
  Hits        14273    14273
  Misses      10163    10163
  Partials     2435     2435

Continue to review full report at Codecov.

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

@chrta look good to you?

Yes, looks good.


generic associated types are unstable

I'm a NOOB to Rust, but when I try to compile the code under examples router_v5, getting the below error. Would appreciate any help/hints  in resolving this
error[E0658]: generic associated types are unstable
--> .cargo/registry/src/github.com-1ecc6299db9ec823/ntex-service-1.0.2/src/and_then.rs:41:5
|
41 |     type Future<'f> = AndThenServiceResponse<'f, A, B, Req> where Self: 'f, Req: 'f;
|     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #44265 https://github.com/rust-lang/rust/issues/44265 for more information

you need newer version of rust, min supported version of rust is 1.65


Sign In occurs in Pop-up Dialogue

Library
<EMAIL_ADDRESS>Framework
React 16
Description
It has been observed that a situation can be created where a User's Sign In session opens in the Sign In pop-up dialogue rather than redirected back to main window in a desktop web browser, when that desktop web browser is not in the immediate background of the dialogue.
Error Message
No error message.
MSAL Configuration
    const configuration: Msal.Configuration = {
        auth: {
            clientId: clientId,
            authority: "https://login.microsoftonline.com/" + tenantId,
            redirectUri: redirectUri,
            postLogoutRedirectUri: postLogoutRedirectUri,
            navigateToLoginRequestUrl: true,
        },
        cache: {
            cacheLocation: "localStorage",
            storeAuthStateInCookie: false,
        },
    };

Using the standard Azure B2C Sign-In flow.
Reproduction steps

Navigate to the application landing page in a desktop web browser (use full screen window size).
Click the Sign In option.
Confirm a Sign In dialogue appears in the foreground.
Click any desktop app to put that in the foreground (i.e. launch and view Windows Paint).
Use the Windows Task Bar to find the Sign In dialogue window and select that to appear in the foreground.
Confirm that the desktop app (i.e. Windows Paint) is in the immediate background behind the Sign In dialogue, and that the application landing page in the main window of the desktop web browser is not visibile.
Sign In to the using a valid User Account (this can be for a first OR non-first login attempt).
When the Sign In process is successful, confirm that the User Sign In session appears to open in the Sign In dialogue rather than redirected back to main window in desktop web browser (it should be note the initially the application landing page is visible, but if the user clicks the Sign In option, then the Sign In session opens in the dialogue) (it should be noted that the Sign In dialogue window can be maximised and the user's login session appears as expected).

We're using the standard Azure B2C Sign-In flow.
Expected behavior
The pop-up should close, and the sign-in
Identity Provider
Azure B2C Basic Policy
Browsers/Environment
Chrome 88
Regression
This is a new implementation.
Security
No
Source
Customer request

@markholst I couldn't reproduce this behavior in our samples. I'm not sure I fully understand the issue here. Do you have a video that you can provide showing the errant behavior? As well as some logs from the browser?

Thanks @pkanher617 for checking in quickly on this
I provided the instructions from our tester, however I have managed to reproduce this one quite easily.  I think the key is to minimise the browser window and continue working in the popup dialog.
This shows the initial page of the application, signed-out.

I have now clicked sign-in to show the sign-in window.

I have now minimised the main browser window, but left the pop-up visible.

I then let things sit for about 30 seconds...
I have now completed sign-in and I have seen that the sign-in occurs within the pop-up.  Normally it would close the pop-up and I would see this content back in the main application window.

Looking at F12 on the popup, it's only logging as if it's a new instance of the application... it has clearly done a redirect in the pop-up.

Bringing the main application window forward, I can see that it has failed to log any new messages to the console.

This is everything sitting together at the end of the process.

Hi Thomas,
The issue occurs consistently in Edge, Firefox, Opera and Chrome.
Chrome 89
Edge 89
Opera 74
Firefox 84
Confirmed using @azure/msal-browser 2.12.0
It's almost like the browsers 'go to sleep' when minimised.
I can certainly have a try a confirming through a sample, it might take a few days to find the time.  I'll let you know as soon as I can.
Cheers,
Mark
From: Thomas Norling @.>
Sent: Wednesday, 10 March 2021 2:41 AM
To: AzureAD/microsoft-authentication-library-for-js @.>
Cc: Mark Holst @.>; Mention @.>
Subject: Re: [AzureAD/microsoft-authentication-library-for-js] Sign In occurs in Pop-up Dialogue (#3126)
@markholsthttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmarkholst&data=04|01|mark.holst%40nopta.gov.au|4309ca6440414f3e718208d8e32ad288|2940859fee864ee3848f02ac9eba62b2|0|0|637509120354584709|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=lHqrr0NgiKHdj5KhcxZOsQVCcXWJNfEohhVI1S%2BSdec%3D&reserved=0 I was also unable to reproduce this with the steps shared above. Is this only happening in Chrome or in other browsers as well? Do you have a public link you can share or are you able to reproduce this using one of our sampleshttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzureAD%2Fmicrosoft-authentication-library-for-js%2Ftree%2Fdev%2Fsamples%2Fmsal-browser-samples%2FVanillaJSTestApp2.0&data=04|01|mark.holst%40nopta.gov.au|4309ca6440414f3e718208d8e32ad288|2940859fee864ee3848f02ac9eba62b2|0|0|637509120354584709|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=y2dEos71Qt8GNtppTBpBzoI9nKQhsShaaJw8OzGBkgc%3D&reserved=0?

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzureAD%2Fmicrosoft-authentication-library-for-js%2Fissues%2F3126%23issuecomment-794287523&data=04|01|mark.holst%40nopta.gov.au|4309ca6440414f3e718208d8e32ad288|2940859fee864ee3848f02ac9eba62b2|0|0|637509120354594704|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=%2BDPJoQ5WpjXjqZBVZmDviZV0kNu2dtJFlw4bePprKo0%3D&reserved=0, or unsubscribehttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FANS2PPYMNY3OCEZZIVP22OTTCZMQ5ANCNFSM4YQQK3IQ&data=04|01|mark.holst%40nopta.gov.au|4309ca6440414f3e718208d8e32ad288|2940859fee864ee3848f02ac9eba62b2|0|0|637509120354594704|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=Eebn1Uu6kQ%2Fllo3w2%2BAfA4m1Irs1jhlimQBFXYtHj1U%3D&reserved=0.

This one is interesting.
I've taken this sample - https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/samples/msal-browser-samples/VanillaJSTestApp2.0 and I definitely cannot reproduce the problem.
This was tested using both the sample B2C configuration and my B2C configuration.
Watching it perform the login, it looks the like sequence of events is:

The pop-up is shown,
I sign in,
The content in the popup is redirected and I can briefly see the sample app load in here,
The pop-up closes.

Given I have a fairly chunky app, which makes service calls immediately on loading, is it possible for me to detect that the app is loading within the context of the pop-up?  I can ensure nothing is rendered or run.

Yes, I believe my hunch is correct.
I have just modified my App.tsx and put in a statement:
if (window.innerWidth === 483) return <></>;
With this in place, I can no longer reproduce the issue.
Of course, looking for a better solution here.  Is there anything that I can reliably use to determine if the app is initialising in the pop-up?

@markholst What we typically recommend is that you set your redirectUri to a blank page when using the popup or silent flows. Can you try that?

Thankyou Thomas, I can confirm that using an alternative redirectUri does the trick.
In my App.tsx I can simply assert on the route early and not render any components.  It's a little indirect, but effective.  I am no longer able to reproduce the issue described in this ticket.  You are free to close this ticket.
const isLoginRedirect = window.location.pathname === "/auth-redirect";
if (isLoginRedirect) return <></>;

I am also finding silent sign-on is much quicker and more reliable, looking at the logs I believe it was getting into an auth loop.
Can you please confirm where the use of a blank page is documented?  I have been over the documentation at various points, it is clear I have missed this.  I would like to check if there's any other tips I might have missed in this content.

@markholst To be quite honest, I'm not sure it is explicitly documented anywhere for msal-browser. This is something we should add, I'll make a note to add this soon. Generally our FAQ is a good place to find tips as well as our docs
Closing as the original issue was solved but please feel free to open a new issue if you have additional questions. Thanks!


Can some one provide a working example for building images in dockerhub using this plugin to deploy war on tomact

Description
[Add feature/bug description here]
How to reproduce
[Add steps on how to reproduce this issue]
What do you expect
[Describe what do you expect to happen]
What happened instead
[Describe the actual results]
Software:

docker version: [Add docker version here, client and server]
docker-maven-plugin version: [Add docker-maven-plugin version here]
maven version: [Add maven version here]

Full backtrace
[Paste full backtrace here]

I have the same requirements.


Make UI for editing interests

[ ] Add page for editing interests
Screen Design:

Addressed in #55


feat(LinearAlgebra/Matrix): Prove A * B = 1 ↔ B * A = 1 for square matrices over a commutative semiring

This PR generalizes Matrix.mul_eq_one_comm from CommRing to CommSemiring.

The following statement
theorem mul_adjp_add_detp : A * adjp 1 A + detp (-1) A • 1 = A * adjp (-1) A + detp 1 A • 1 := by
is universal, and hence can be proven for any comm semiring by pulling back the question to mv polynomials over Nat, and subsequently embedding in mv polynomials over Int.

Good point! I think everything before this theorem is universal too, including the one concerining detp (A * B), since they don't use the condition A * B = 1.

Thanks :tada:
bors merge


Supporting tokenizer register

Currently, the tokenizer is hard-coded to default, it would be better to include some configurable tokenizer for Chinese (tantivy-jieba and cang-jie), Japanese (lindera and tantivy-tokenizer-tiny-segmente) and Korean (lindera + lindera-ko-dic-builder)
https://github.com/tantivy-search/tantivy-py/blob/4ecf7119ea2fc5b3660f38d91a37dfb9e71ece7d/src/schemabuilder.rs#L85

@fulmicoton

Also note that tantivy-py does not come with a japanese tokenizer.
Tantivy has a good and maintained tokenizer called Lindera. If you know rust, you may have to compile your own version of tantivy-py.

I am trying to add LinderaTokenizer to https://github.com/tantivy-search/tantivy-py/blob/master/src/schemabuilder.rs#L85, but I couldn't figure out where
 index
         .tokenizers()
         .register("lang_ja", LinderaTokenizer::new("decompose", ""));

should go. Do you have any idea?

Anywhere as long as it happens before you index your documents.
Also make sure you declared in the schema that you want to use the tokenizer named "lang_ja" for your japanese fields.

Note that these tokenizer typically required shipping a dictionary that is several MB large, so it will not be shipped by default.
Ideally that should be in a different python package, and registration of the tokenizer should be done by the user as suggested by @acc557

What's the progress of adding support configurable tokenizer like tantivy-jieba? This is badly needed for non-ascii text indexing.

I don't have time to work on this but any help is welcome.

Could you provide some directions/suggestions we can try? I am willing to do something for this.
Thank you~

I think a useful approach might be to add optional features to this crate which can be enabled when building it from source using Maturin to include additional tokenizers. Not sure how to best integrate this with pip's optional dependency support though...

I will look at this within the next two weeks or so.

For (my own) future reference the upstream tantivy docs for custom tokenizers is here.

I've started working on this in a branch here (currently incomplete): https://github.com/cjrh/tantivy-py/tree/custom-tokenizer-support
I think it will be possible to add support via features as suggested. We could also consider making builds that include support, just to make it a bit easier for users who might not have or want a rust toolchain. But we'll have to be careful about combinatorial explosion of the builds. Perhaps we'll limit the platforms for the "big" build for example.

I've done a bit more work and put up my PR in draft mode #200 .  I will try to add tantivy-jieba in a similar way under fflag in the next batch of work I get around to.
The user will have to build the tantivy-py wheel with the additional build-args="--features=lindera" setting. (The tests demonstrate this.)
I've added a small Python test that shows the "user API" of enabling Lindera.  We could decide that if the build is a Lindera build, then it should not be necessary to manually register the lindera tokenizer, as below:
def test_basic():
    sb = SchemaBuilder()
    sb.add_text_field("title", stored=True, tokenizer_name="lang_ja")
    schema = sb.build()
    index = Index(schema)
    index.register_lindera_tokenizer()
    writer = index.writer(50_000_000)
    doc = Document()
    doc.add_text("title", "成田国際空港")
    writer.add_document(doc)
    writer.commit()
    index.reload()

What is the user expectation of whether or not something like register_lindera_tokenizer() should be called?
Also, there are things that seem like settings in the configuration of the tokenizer itself (what's "mode"?). And finally, the examples in the README at https://github.com/lindera-morphology/lindera-tantivy show use of TextOptions, which means we probably need support for that in tantivy-py?

I really appreciate your ongoing work on this issue.

Also, there are things that seem like settings in the configuration of the tokenizer itself (what's "mode"?).

You may have already resolved this question in #200, where you mentioned configurable options.
The explanation for Lindera can be found here (you probably know this already).

As a Japanese speaker, let me explain why these modes exist.
In Japanese text, words are not separated by spaces (same for Chinese and Thai).
It's common to combine multiple words to form parts of speech.
So a long word can sometimes be a combination of shorter words.
"成田国際空港" (Narita International Airport) is a proper noun representing a single facility (mode=default),
but it can be split into "成田/国際/空港" (Narita/International/Airport) in the same semantic units as English words (mode=decompose).
Which mode to use depends on the search needs.
Splitting words into smaller parts (decompose mode) lets us match parts of words but in exchange, it increases the need for better result sorting and makes the index bigger.
When expanding queries to simultaneously search for synonyms, it's often better to keep proper nouns.
Interestingly, some libraries even provide three tokenization modes.
https://github.com/WorksApplications/Sudachi#the-modes-of-splitting

Welcome @pokutuna 😄
Thanks for the information, this is helpful for me to know why the modes exist.
For a status update, I am currently working through options to make these tokenizers installable at runtime, rather than making custom builds that include them.


"No such file or directory" error...

Thank you for setting one of these up. It's an incredible timesaver.
I had a prefect install with this initially, just a flawless victory from start to finish, but now when I attempt to install I get the old:
" ENOENT: no such file or directory, open '/react-ui/build/index.html' "
every time - even when I scrap and create a fresh everything (including test store, creds, db, etc).
The main issue, as I see it, is the fact that it's looking for that file, in that directory, in the first place. Honestly, there really IS no such file, because the dir doesn't even exist (at this point), it's just on localhost, and not even compiled yet. So now I'm scouring the whole thing looking for the culprit and I can't really track down what would even cause the error (aside from looking for a file in a directory that doesn't exist).
Any thoughts on this? I can't quite reconcile why it went so smoothly initially, yet now it just refuses to act right. Any insight would be gold.
Thanks

Hi Nathan,
I'm glad you find this useful!
What's your application URL set in Shopify admin? It's probably '/'.
When you access '/' in development, the webpack dev server bypasses the server side routing and loads index.html and the app. It works alright in production. Use ngrok url/home instead of ngrok url/. Also, don't forget to create an .env file in react-ui folder. Those values are used to have the embedded app play nicely with the dev server.
This restriction with not being able to use '/' as your app route is something we need to fix but I didn't put any thought into it yet. Suggestions are welcome.

Hi Nathan,
I'm glad you find this useful!
What's your application URL set in Shopify admin? It's probably '/'.
When you access '/' in development, the webpack dev server bypasses the server side routing and loads index.html and the app. It works alright in production. Use ngrok url/home instead of ngrok url/. Also, don't forget to create an .env file in react-ui folder. Those values are used to have the embedded app play nicely with the dev server.
This restriction with not being able to use '/' as your app route is something we need to fix but I didn't put any thought into it yet. Suggestions are welcome.

Hey Mihovil,
Thank you for responding so quickly. You're awesome!
Man, I WISH it were that simple.
I definitely have the .env file in react-ui. Perhaps I'm not satisfying it's requirements? Mine looks like this:
REACT_APP_SHOPIFY_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyz
REACT_APP_SHOP_ORIGIN=devstore.myshopify.com
And I definitely have the app URLs set as:
https://12345.ngok.io/home <--App URL
https://12345.ngok.io/auth/callback <--Whitelist
That's why it's so vexing! Everything was totally fine at first and I was able to install perfectly - I had the product grid and everything- then I went to bed........
The next day, and every day since, I get that demon-speak in my terminal upon every install. >: ^ (
Without knowing what could be causing the issue, I've even washed and sanitized the whole thing and started over from scratch. Yet it still errors. I guess I was hoping you'd have some sort of magic bullet.

Could it be the specific ngrok port?

Hi Nathan,
The root problem is that a request is not hitting any of the routes and then hitting the generic route which tries to load the built index.html.  When you look at the ngrok logs, what is the request that triggers this error? I think this will give us the answer. It's probably something trivial.
Could you paste the contents of your .env file in the root folder?

The offending route is/was '/api/products', and instead of showing the first five, it gave that error (while the little progress bar slooooooowly creeps across the app pane).
Funny thing is, I managed to get it working again. I'm still not entirely sure what fixed it, but I took a number of precautions that have solved many dev issues I've had with Shopify apps in the past.
Those being:
-Deleting the app in the dev store (obviously).
-Deleting the app altogether in the admin and creating an entirely new application with new creds.
-Clearing the cache in Chrome and all cookies associated with the installation store (probably the biggest issue creator for Shopify app development I've seen. Chrome is too 'helpful' for it's own good sometimes, and Shopify too rigid).
-Updated package.json where applicable/appropriate.
Then voila, things started going my way again.
Unfortunately, I'm facing a different issue now. Which is shopify-api-node doesn't seem to like several of it's own methods - and failing....quietly. It's totally silent, but it's not erroring.
Ah, but such is the way of working with Shopify.
Just in case - must I do anything in particular (declare or  register routes somewhere, use a make calls via a specific path, etc) in order to make requests out of this? It seems like very little of my express/node knowledge is serving me very well so far in this endeavor, so I just wanted to check if there's an easter egg I failed to notice yet.
Thank again my man!

How are you making the requests? What error are you getting? Do you have a repository I can check out :)?
When you install the app into a store, you get a session with the Express server. All requests towards Shopify need to go through the server. You can't make requests to Shopify admin from the client (React) side. Every request needs to be proxied through the Express server. This is a wild guess, but are you trying to call the Shopify API directly from the React app?
You should be able to make any request you have authorizations for through shopify-api-node.

Hey, sorry for responding so late,
I set up a webhook, then make a post request in response to the webhook. It's just a test I use to check for webhook communications. The webhook is working just fine, but my post requests are not.
I've tried to make them in server.js, then in app.js, then in a separate file and they just don't seem to be listening. I tried different endpoints as well, in every location I made to request, and still no action. The endpoints I've tried to use are:
router.post('/new-orders', (req, res) => {
    res.status(200);
}):

router.post('/api/new-orders', (req, res) => {
    res.status(200);
}):

and those same endpoints from
app.post(...)
in all different files and to no avail. Frankly, it's been driving me insane since I've never had these issues before. That's why  I wanted to double check if there was some sort of procedure in place.
:^/
here, check it out...
https://github.com/CuttyBang/blap

Hi Nathan,
I can't see the repository. Is it private? Could you paste the part of the code in your webhook where you're making the request?
Are you trying to make a request to the Shopify API in the webhook or to the Express server?
I have an idea about the problem. If it's that, the solution is easy. If you want to make a request to the Shopify API in a webhook, you don't have an authenticated session and you need a token. The solution would be simply to store the token in the Shops table when the shop completes the oAuth flow. Then, in the webhook, find the shop by its name and use its token to call the Shopify API.
I hope this helps. If not, a code example will help us easily find a solution.

 Sorry. Yea, it's a private repo. Here, I'll just copy it in....
So I create the webhook with the other webhook you have set up to create...
const afterShopifyAuth = session => {
    const shopify = getShopifyApi(session);

    const webhook = {
      topic: 'app/uninstalled',
      address: `${APP_URL}${UNINSTALL_ROUTE}`,
      format: 'json'
    };

    const newOrders = {
      topic: 'orders/create',
      address: `${APP_URL}${NEW_ORDERS}`,
      format: 'json'
    };

    shopify.webhook.create(newOrders);

    shopify.webhook.create(webhook);
  };

The 'NEW_ORDERS' path is set in config:
const NEW_ORDERS = '/new-orders';
 //have also tried it at '/api/new-orders' since you have other requests set up at that endpoint.

Then as I said before, I'm making the requests all over the place in an attempt to figure out where it wants to find them. I've tried in app.js, shopify.js, and in a separate file (.orders.js). They're basically all the same request, except I've tried to make them in as many ways I can think of. At this point, all I want it to do is return a 200 status, but the request isn't registering the ping from the webhook at all. The requests look like so:

//also tried as 'router.post(...)' & using the '/api/new-orders' endpoint
app.post('/new-orders', (req, res) => {
  res.status(200);
});

Again, this has been attempted from app.js, shopify.js, and from a separate file.
I've successfully made this same request a hundred times in my other apps, so I'm a little baffled here. I would really like to get this ironed out because you've got a beautifully constructed template that's an amazing time saver.

Oh, and I realize that I said I was making requests in server.js before. I'm sorry. I meant shopify.js. The webhook is working fine. It's the responding to the ping from the webhook that's the issue.

When you say that the webhook is working fine, you mean creating the webhook or that Shopify hits your webhook when you create an order?
What response are you getting?
Try putting the new-orders endpoint before the auth middleware in shopify.js. I'm not sure if we're talking about the same problem, but I just tried hitting the new-orders endpoint and got a 200 response.

That the webhook is successfully created and I get a touchback when an order is made. All I end up getting is a 302. And for some bizarre reason, I get a 304 somewhere in the mix. I'm not real worried about that one though, since it looks like it's coming from the app pane in admin.
I'll drop it in up there before the the auth middleware as you say. As of now -when I'm calling it inside shopify.js- I've got it way down at the bottom with the '/logout'  request. Or wherever you had the '/orders' placeholder. I thought it might've been a breadcrumb you left to illustrate where you intended those to go.
I'll report back with my findings.
Thanks again for shepherding me through this. If you're getting it to behave, then clearly I'm not doing it right.

Hi Nathan,
If you put your route after the auth middleware, it'll need an authenticated session. If you put it before the auth middleware, it should work. Let me know if this works ;).

I dunno, what line were you putting yours? I gotta get this to work correctly once before I jump off a bridge...
I put it in at around line 238, just before the authMiddleware() function, and just after the uninstall post request.
The webhook is coming through, but it's not taking the status code. I'm simply doing that simple response that I showed you before:
router.post('/new-orders', (req, res) => { res.status(200) });
but it's not landing. I get a blank (in the ngrok logs), one of these numbers in the winston logs
POST /new-orders - - ms - -
then it gives me one of these...
 Proxy error: Could not proxy request /new-orders from 0f7486c3.ngrok.io to http://localhost:3001.
See https://nodejs.org/api/errors.html#errors_common_system_errors for more information (ECONNRESET).
[HPM] Error occurred while trying to proxy request /new-orders from 0f7486c3.ngrok.io to http://localhost:3001 (ECONNRESET) (https://nodejs.org/api/errors.html#errors_common_system_errors)

Ok, fine. Maybe I just need to feed it an actual job to do. Seems reasonable. All I want is to complete a successful handshake. SO CLOSE.
So I trimmed it out  like so:
  router.post('/new-orders', (req, res) => {
    const { shopify } = req; // how you're declaring it both before and after this.
    const orderData = req.body;
    const orderId = orderData.id;

    shopify.transaction.create(orderId, {kind:"capture"}).then(
      transaction => { res.status(200).json(transaction); },
      error => { console.log(error); });
  });

Now, when I do this, things really go crackers. Suddenly the logs are screaming this at me:
 POST /new-orders 500 94.876 ms - 3790
 error:  TypeError: Cannot read property 'transaction' of undefined
     at /Users/nathanmcelwain/Sites/localhost/blap/compiled/webpack:/server/routes/shopify.js:237:5
    at Layer.handle [as handle_request] (/Users/nathanmcelwain/Sites/localhost/blap/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/nathanmcelwain/Sites/localhost/blap/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/Users/nathanmcelwain/Sites/localhost/blap/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/Users/nathanmcelwain/Sites/localhost/blap/node_modules/express/lib/router/layer.js:95:5)
at [ ... ]

It goes on, but you get the gist.
You've got successful declarations like that all over the place -before and after- so I'm kinda bummed it's not into it with me. That's why I'm wondering what line you're making requests on, so (for the sake of my sanity) I can just copy you. Instead of trying to write an second getShopifyApi() for myself, I'd really like to just use what clearly already works.
I'm sorry man, I've never had so much trouble getting an already working application to work...

Hi Nathan,
Try this :):
router.post('/new-orders', (req, res) => {
   res.status(200).send('Ok');
 });

You're missing the send() (or json()).
Btw, the 500 error is expected. When you authenticate with Shopify with the client app, the token is stored in the session (backed by express-session and Redis). This is how we know that an authenticated shop is making requests to its admin.
But, in a webhook, it's Shopify that's making the request. There is no session and no shopify object attached. But again, we know it's a request from Shopify because we validated the HMAC. At that point, you need to find the shop in your database and find its token. Then you can instantiate the shopify-api-node object and make a request. Of course, you need to save the token to the database table after authentication. Let me know if you need more help on this.

Oh, man. Is THAT what's going on? So weird. Sometimes you get so focused on a tiny little detail that the bigger picture disappears.
This is gold. Thank you man. I'll try not to bother you again.... :^D

Well, maybe not quite yet....
Do you have any db lookup methods already in place?

Just to double check, the webhook works?
For the database, save the token on the auth callback route. Find the line with the Shop.findOrCreate call. You'll have to add the token field to Shop model and migration. It's straightforward. Then, in your webhook use Shop.find with a where clause that finds by domain. An example is in the uninstall route, although it uses destroy instead of find.
I'm happy you find this starter valuable so feel free to ask questions. It'll help other people that find this. Are you building a production Shopify app, private or public?

Oh cool! This keeps getting better and better. Thank you sir!
Yea man, this starter is a gem. I'm really stoked to have found it.
This particular app that I'm using the starter for is going to be a "private public app", or an unlisted app for a client, but I build all sorts of apps. Some are just convenience apps for me and my team, some big multi-shop "public" apps, as well as little one offs. Custom checkouts, loyalty program type apps, buy one/get one, etc. Our clients are almost exclusively tech companies, and we end building a lot of purchasing portal/internal/bulk ordering stores, as well as public facing brand merchandise storefronts, so special use cases are the norm. A lot of them can and probably will end up being public in the truest sense. They're too useful to not spread around, albeit somewhat specialized.

Oh, and yes, the webhook works exactly as expected.

Hi Nathan,
Yeah, that sounds right. Have you tried it out? We're just saving the domain. If you already have existing data in the database, you'll need to create a migration. Otherwise, I'd just wipe out existing data and start with the new model.

Hi Nathan,
Yeah, that sounds right. Have you tried it out? We're just saving the domain. If you already have existing data in the database, you'll need to create a migration. Otherwise, I'd just wipe out existing data and start with the new model.

Actually, no, man......
What I decided to do was start over fresh from the beginning so I could establish a set up.
So everything was fine until I got to npm run sequelize db:migrate when it started to tell me that
ERROR: DataTypes is not defined
I didn't have that issue before. And as far as I know, DataTypes is just a convenience class, but you can access it directly from the Sequelize object anyway. But I tried importing it directly just the same and that didn't really help.
I peaked into the db table and can see the sequelize meta in there, so I thought maybe the error was erroneous.
I can compile the code, but installing throws an even lamer error that says:
SequelizeDatabaseError: relation "Shops" does not exist
and this is being born from the .findOrCreate() method.
This is my nightmare....

The second error is probably due to not running the migration. The first one makes no sense. Can you compare Sequelize versions between your previous setup, which worked, and the new one?

I worked it out. Something got deleted I think. It's all looking good AFAICT.

What, in your opinion, is the most reliable place to query the db? There isn't anything that comes with the webhook that includes the domain, so I'm calling a function queries it inside checkForValidSection() since it carries it in the req object. But that isn't very reliable feeling. I'm open to suggestions.

Shopify sends you the domain with the webhook. It's in the body:
Check line 207 in shopify.js. Is this what you need?

Shopify sends you the domain with the webhook. It's in the body:
Check line 207 in shopify.js. Is this what you need?

I thought so too, but when I look at the req object, I don't see anything that mentions the domain explicitly. Which is strange, since you'd think it would have to carry the domain.... [shrug]
That line at 207 is pretty much the same as mine. I'm just using it somewhere else. I'll try to pull it out of the webhook again.

Hi @CuttyBang,
I totally forgot that this thread is still open. You're right. Shopify sends the domain in one of the headers and not the body. I'm not sure if that's a recent change or I misread the documentation initially. I fixed this and pushed the change to master. Mystery solved :).

All good my man.
I found it in the header too. But, see what I mean?
I actually figured out how to pull the shop name out of the webhook object, although it's a tad hack-ish since webhook actually does include the shop name, albeit not in the way you would think - or want - but it does.
There's a link to the order status page in the JSON object. I used that, split it up by the forward slash, and targeted the shop name that way.
Like I said, hack-ish, and not ideal. But in lieu of getting into the header and writing up a bunch more code, I made that work. I meant to write up a "real" solution personally, but sounds like you beat me to the punch! That's awesome. I'm going to test it out.
We should write up a little user guide for this. I think it would help people. I've banged around with this enough at this point to know where the stumbling blocks can pop up. Especiall for people who are unfamiliar with Sequelize, or Redis, or even the create-react-app. You mind if I spin a little guide?

Just pull the new code and you'll see how the access the header. The uninstall webhook never worked properly and I have no idea how I missed it. I think I read somewhere that Shopify sends you the domain in the body. But, that was either some legacy documentation or I've misread it. It seems to be causing problems for people, as seen in the other issue thread.
Spinning up a guide is a great idea. It would help a lot of people and I'd really appreciate it!

This looks great. However, I'm suddenly getting a sequelize error. The old "Cannot find ../config.json.  error. There's been literally zero change on my end as far as workflow/set up. Is it possible that something got moved or deleted by accident? I'll try to perhaps update the versioning in package.json, as that seems to be one of sequelize's big complaints as is, however, I think that will make it so I have to start using the symbols thing......
Let me know if you have any ideas.

Something probably got deleted. Did you make any changes at all? You don't need to update sequelize-cli if it worked before. Does this file exist? Where does the error originate?

Sorry this took me so long.
Actually, no. I started from scratch with the new changes and had the issue. So I scrapped it and tried again, same issue.  The old version seems to work just fine, albeit without the correct headers.


[14.0] ISPN-15335 Mark deprecations as forRemoval=true

https://issues.redhat.com/browse/ISPN-15335

Thanks @tristantarrant


Update Dockerfile

When xdebug.remote_autostart setting is set to 1, Xdebug will always attempt to start a remote debugging session and try to connect to a client, even if the GET/POST/COOKIE variable was not present.
I completed the 3 steps below:

[] I've read the Contribution Guide.
[] I've updated the documentation. (refer to this for how to do so).
[] I enjoyed my time contributing and making developer's life easier :)

duplicate.


Dispatch submit

Setting submitAsSideEffect flag makes handleSubmit function to dispatch result from user-provided onSubmit function and skips reacting to result in other ways (submission success/failure) as it is expected that the library consumer will handle these processes manually.

This looks great! 👍
Needs docs and tests to get merged.

What's the current status of this merge?

@schleumer finishing up examples for both redux observable and saga, needs docs and tests then good to go

Should be ready to merge

@erikras / @ecnaidar do the codeclimate issues need to be fixed before merging?

@ecnaidar can you please update the conflicts?
@erikras once he does will this suffice to merge?

Codecov Report

Merging #4015 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##           master   #4015   +/-   ##
======================================
  Coverage     100%    100%
======================================
  Files          74      73    -1
  Lines        1686    1680    -6
======================================
- Hits         1686    1680    -6

Impacted Files
Coverage Δ

src/createReduxForm.js
100% <ø> (ø)
:arrow_up:

src/propTypes.js
100% <ø> (ø)
:arrow_up:

src/handleSubmit.js
100% <100%> (ø)
:arrow_up:

src/ConnectedField.js
100% <0%> (ø)
:arrow_up:

src/Form.js
100% <0%> (ø)
:arrow_up:

src/createReducer.js
100% <0%> (ø)
:arrow_up:

src/util/isHotReloading.js
100% <0%> (ø)
:arrow_up:

src/structure/immutable/index.js
100% <0%> (ø)
:arrow_up:

src/index.js
100% <0%> (ø)
:arrow_up:

src/FormSection.js
100% <0%> (ø)
:arrow_up:

... and 11 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #4015 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff           @@
##           master   #4015   +/-   ##
======================================
  Coverage     100%    100%
======================================
  Files          74      73    -1
  Lines        1686    1680    -6
======================================
- Hits         1686    1680    -6

Impacted Files
Coverage Δ

src/createReduxForm.js
100% <ø> (ø)
:arrow_up:

src/propTypes.js
100% <ø> (ø)
:arrow_up:

src/handleSubmit.js
100% <100%> (ø)
:arrow_up:

src/ConnectedField.js
100% <0%> (ø)
:arrow_up:

src/Form.js
100% <0%> (ø)
:arrow_up:

src/createReducer.js
100% <0%> (ø)
:arrow_up:

src/util/isHotReloading.js
100% <0%> (ø)
:arrow_up:

src/structure/immutable/index.js
100% <0%> (ø)
:arrow_up:

src/index.js
100% <0%> (ø)
:arrow_up:

src/FormSection.js
100% <0%> (ø)
:arrow_up:

... and 11 more

Continue to review full report at Codecov.

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

@Faolain I have resolved conflicts with master. This should be ready to merge.
I have not idea who we can ping to get this going and I think @erikras gets no notifications from here.
As side note, it was very not fun to run example because they were changed to import script from hosting directly in html.

@gustavohenke can this PR be merged?

@erikras is it possible for this to be merged in?

Published in v8.2.0.


Getting 3 copies of notifications (in Notification Center) for each reply

Not sure about other notification types

dev.phanpy.social
Safari 16.6
macOS 13.5

🤔 may need more info or screenshots, hard to reproduce on my side.

Let me know if you need other things:

@hboon are you still having this issue?
I do remember seeing this on my machine before, tried unsub and resubscribe the push notifications, end up worse - not getting any notifications at all 😂. Tried unsub/resub again, now seems working 🤞
Not really sure if Safari's push notifications are just really bad/weird as I've never tried getting push notifications from other web apps/sites 🤷♂

I found that it's turned itself off 😆.

I enabled it again by ticking the checkbox and just received 2 (or 3, not sure because I don't remember if I clicked on it) notifications for the same reply.

🤔 I do get that sometimes too 🤔 (It turned itself off)
From the code logic, it'll be unchecked if backend returns nothing (there's no subscription info from backend suddenly), which I don't quite understand why. It's possible that the browser's subscription key changed and doesn't match backend's subscription key, so backend automatically unsub the user 🤪 (purely my speculation as I'm unable to debug this)


Add ActivityInstance and Generator for Activities

Those two new concepts are introducing the ability to run an activity n times
thanks to a generator. It allows more complex operations such as: running one
activity for a date within a date range. Retry mechanisms are also a lot more
granular.
The ActivityInstance represents an execution of the same activity with a different
context. Each execution of an activity will have at least one instance, and if you
use a generator, it will have n instances.
Adding generators does not change the dependency tree. If you have an activity
that depends on another one, the dependency will wait until all instances have
completed.
@rantonmattei

There is no tests for utils.create_dictionary_key

Added the file (it was missing from the commit.)

R+


csv input case 'name_col" error

https://github.com/Shualdon/QupKake/blob/f7a294e91929e4e4f0a7100ad5cf5a64a34a7d4f/qupkake/cli.py#L103C1-L104C1
When I use qupkake without "name_col", then all smiles have same name like this "molecule_RangeIndex(start=1, stop=281, step=1)"
I think it should be fixed.
Also, I tried qupkake for novartis benchmark, It takes too long times.
When, I run
"qupkake file data/novartis_qupkake_pka.sdf -t -m 8" codes, It takes an 1 hour....
My server has same spec in your paper "3.85 GHz AMD EPYC 9374F CPU with 32 cores"
Thank you.

I think it should be fixed.

Please feel free to submit a pull request.

"qupkake file data/novartis_qupkake_pka.sdf -t -m 8" codes, It takes an 1 hour....

I guess it depends on your view of "too long". We're pretty clear in the paper that the time-limiting step is mostly running xtb / crest calculations.

Thank you for your reply and interesting research.
I'll submit a pull request, as soon as possible.
I think that it is still fast. But, in Figure 4, average compute time per molecule across the 280 molecules in the Novartis test set with 8 CPU Cores, It takes 0.67s per molecules. But, in my implementation 12.8s per molecules.


5382 5389 adds option / tag attribute separator for each compliance f…

…ield tag. adds edit compliance table row level edit button to switch to edit mode for entire policy

Coverage remained the same at 26.891% when pulling 89fd5cbc816e8f0a73f10843804f0a836d4cca64 on theseyi:multi-tagging-updates into 8b8e63d221c47d09f993b9d62c5656b43ef34f5e on linkedin:master.

Codecov Report

Merging #1103 into master will increase coverage by 0.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #1103      +/-   ##
=========================================
+ Coverage   32.29%   32.3%   +0.01%
=========================================
  Files         192     192
  Lines        4828    4829       +1
  Branches     1323    1323
=========================================
+ Hits         1559    1560       +1
  Misses       3269    3269

Impacted Files
Coverage Δ

wherehows-web/app/utils/array.ts
100% <ø> (ø)
:arrow_up:

...eb/app/components/dataset-compliance-rollup-row.ts
18.33% <0%> (+1.38%)
:arrow_up:

Continue to review full report at Codecov.

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


Alacritty Ueberzug++ Image Preview Stopped Working

What system are you running Yazi on?
6.7.2-arch1-2 X11
What terminal are you running Yazi in?
alacritty 0.13.1
Yazi version
yazi 0.2.2
Did you try the latest main branch to see if the problem has already been fixed?
Tried, but the problem is still present
Describe the bug
For a while I had the image preview working just fine, but today it stopped working. I have not overwritten the default config file to my knowledge.
echo $TERM
alacritty

echo $TERM_PROGRAM
alacritty

echo $XDG_SESSION_TYPE
x11

pacman -Q | rg ueb
ueberzugpp 2.9.2-2

Expected Behavior
Image preview works as expected.
To Reproduce
Honestly I have no idea what caused it to break, looking for some direction to troubleshoot.
Configuration
no config
Anything else?

Arch Linux is a rolling release type, so updates are constantly coming to it on a daily basis. Could it be that an update was run in the last day that affects this? What does /var/log/pacman.log show for the last 1-2 days?

That's exactly why I left Arch Linux after 5 years, because I got tired of package breaks on a weekly/monthly basis...

Forcing a rebuild on ueberzugpp with the latest dependencies fixes the issue. The ueberzugpp AUR package was updated to force a rebuild.


BlobReadChannel should fail if content comes from different generations.

Feedback from @Capstan:
If someone updates the object when the client is in the middle of a read and hadn’t specified a precondition, you will simply read from the new object. You need to record the generation upon the first read and then choose what the behavior is for future reads… if the generation still exists (e.g., it’s now a history object), do you still allow reads or do you balk (because the original request is talking about the “current” object which has changed)?

I think we should do 2 things (could be done independently).

Provide a way to specify generation in Storage.reader and if provided stick to it.

If a generation is not provided, fail if we detect that generation was changed between rpc reads
(this could be done by changing StorageRpc.read to return a tuple (StorageObject, byte[]).

Sounds cool, point 1) should be easy once #363 is fixed.

Regarding 2) I could not find a way of getting both data and metadata with the same request. If this is not possible (please confirm) should we implement 2) by getting the metadata before getting blob's data? I was thinking of something like (only if generation is null):

First request

Get blob latest metadata and store generation
Get blob data for generation
Return a pair (generation, data)

Other requests

Get Blob latest metadata and check that generation == generation (if not throw)
Get blob data for generation
Return a pair (generation, data)

@brandony, do we not yield the actual generation via the JSON API when you ask for a generationless object with alt=media? Boo. We should fix that at least.

@Capstan I also could not find a way to get both metadata and content in one request (I mean besides using a batch which I think is not going to work due to race condition).
Also, I don't think you can do that with the XML API (or at least I was not able to).
However, with some code change, we can get the etag (in the XML api we can also get X-Goog-Hash).
Do you think using (and comparing) the etag would be a sufficient check instead of using the generation value?
If so, @mziccard this code can return it:
Get req = storage.objects().get(from.getBucket(), from.getName());
req.setIfMetagenerationMatch(IF_METAGENERATION_MATCH.getLong(options))
  .setIfMetagenerationNotMatch(IF_METAGENERATION_NOT_MATCH.getLong(options))
  .setIfGenerationMatch(IF_GENERATION_MATCH.getLong(options))
  .setIfGenerationNotMatch(IF_GENERATION_NOT_MATCH.getLong(options));
StringBuilder range = new StringBuilder();
range.append("bytes=").append(position).append("-").append(position + bytes - 1);
req.getRequestHeaders().setRange(range.toString());
ByteArrayOutputStream output = new ByteArrayOutputStream();
req.executeMedia().download(output);
String etag = req.getLastResponseHeaders().getETag();
byte[] bytes = output.toByteArray();

BTW, the above code also "fix" #290 by not using the MediaHttpDownloader.

I know the XML API yields the generation you happen to read in the x-goog-generation header on data read responses.

Sorry @Capstan I am not very familiar with the XML API. It seems to me that it does not support the "*generation-not-match" options in general and that Object Download does not support the x-goog-if-metageneration-match, can you confirm any of this?
If that's true switching to the XML api for range reads will force us to drop some of the options that we now allow users to set.

True, it does not support the *generation-not-match options. Object download should support x-goog-if-metageneration-match. If not, that's a bug (certainly a docs bug, possibly a service bug).

sigh Found the internal issue tracking it. :/
You can specify not via preconditions, but via the generation urlparam to specifically get that generation.

Oh, yes, I see now that x-goog-generation is returned together with the content for XML API.
@Capstan though not a big code change I would rather not use the XML API for read operations if that does not support all the options that the Json API supports.
Do you think that using the object's etag (which is available in the response of the Json API) for checking
that content has not changed between read calls is not sufficient or not going to work?

That should be sufficient. We don't claim that the ETag won't change if the content stays the same, but the content changes, the ETag should change.

Oh, but we don't want to have false negative as that would trigger an undesired read failure.
How likely is that ("etag changes but content is the same") to happen and what can trigger it?

If someone re-uploads the exact same object contents, it'll get a new ETag. Our ETag for JSON API is based on generation + metageneration.

I see. I think it is reasonable if we fail the read in that case and I don't think it is a common use-case.
In that case I am fine with going with the ETag check. @Capstan are you fine with it as well?

Sure. Other less GCS aware clients are doing the same because that's what the Internet uses. :)

Ok, great. @mziccard are you fine with it as well?


OLX V2 Api

Any chance for update to OLX Api V2?
Thank You

Here you can find OLX Api V2 client equivalent written in Python
https://github.com/Pawikoski/olx-api-wrapper


Task: Create Tracking Issues for Example Generation

Description:

We need something to track what's been done so we don't waste time redoing the same examples.
I'm thinking a checkbox style page for each module, and then people can assign themselves things in batches.
It's not crucial that we pick functions which don't have examples, as we can create examples for functions which already have examples as well.
Acceptance Criteria:

[ ] Have a tracking issue for each module.

My comments related to this issue were placed in https://github.com/possee-org/genai-numpy/issues/58 by mistake. lol.
I believe this is all complete. I created a couple scripts which generate files used to create these lists, which I'll include in the tools folder.
I split the tracking issues into a few chunks that I think make sense to do together, and to shrink the shear size of the work into manageable chunks.
https://github.com/possee-org/genai-numpy/issues/65
https://github.com/possee-org/genai-numpy/issues/64
https://github.com/possee-org/genai-numpy/issues/63
https://github.com/possee-org/genai-numpy/issues/62
https://github.com/possee-org/genai-numpy/issues/61
https://github.com/possee-org/genai-numpy/issues/60


[Bug] Chart Widget - 'The value at the Custom Fusion chart config is invalid' error occurs when user first clicks on ChartData field and then any other fields

Description
Release frozen - Chart Widget - It is observed that when the user changes the chart type to custom and clicking on chartdata field initially and clicking on any other fields error occurs with the chartData field 'The value at the custom fusion chart config is invalid'
Expected Result:
Clicking on chartdata field and then clicking on any other fields error should not occur. For some reasons user might go back to any other chart to get the actual chartdata field value.
Actual Result:
Clicking on chartdata field initially and then clicking on any fields 'The value at the Custom Fusion chart config is invalid'
Steps to reproduce the behaviour:
1.Launch Appmsith app in the release frozen environment - http://rc.app.appsmith.com
2.Drag and drop chart widget
3.Change the chart type to Custom chart
4.Click on ChartData field
5.Click on any other fields and observe
VideoLink:
https://www.loom.com/share/8fcea8a29d07451a84aa4d665131070f
Important Details

Version: [14.1 (166<IP_ADDRESS>.3)]
OS: [MacOS]
Browser [Safari]
Environment [Release Frozen]

In this case, the chart data field is dirty and empty and hence the validation kicks in. I think it's the correct behaviour.
@jsartisan @vibhandikyash what do you guys think?


Cannot download the asset in Google Drive

I tried to download the asset, but I cannot access the website. I have tried on different browser but all failed. Is there another way to download the asset ?

Hi, if you are in China you should connect to a VPN before downloading. I saved assets to Google Drive, I am planning to move them to a more accessible location soon.

Hi, if you are in China you should connect to a VPN before downloading. I saved assets to Google Drive, I am planning to move them to a more accessible location soon.

It seems that it is not a matter of IP, since myself having the same issue with downloading your assets (https://drive.google.com/drive/folders/1bv02d29z4lSB9SWzCBTUt0GjAb876oSR?usp=sharing).
In case you have mistakenly set the duration for sharing the file publically, would you mind clicking your own link bove to check if it's available publically right now? Thanks~

@Ezharjan hi, sorry, there was an issue with my Google Drive, and I am moving the assets to a different location. I’ll provide the updated file location as soon as possible. Meanwhile, you can try this link https://drive.google.com/drive/folders/10KX_VKcahLyV40mGoUWhrfjtE02IqOuq and see if it works.

@Ezharjan hi, sorry, there was an issue with my Google Drive, and I was asked to move the assets to a different location. I’ll provide the updated file location as soon as possible. Meanwhile, I am using a different Google Account to temporarily store the assets, you can try this link https://drive.google.com/drive/folders/10KX_VKcahLyV40mGoUWhrfjtE02IqOuq and see if it works.

Thanks for your quick and kind response!
It worked!
The link you updated is accessible now~


What is "classes" parameter in config?

Hi
What does "classes" parameter in configs do? Is it about label classes like cell, background, and ?!
classes in config

classes config is the model-specific config. It decides the number of final output neurons of the fully-connected layer.
As cell segmentation is binary problem (0:bgd, 1:cell), we either use 1 or 2 neurons. We used a single neuron for the segmentation.
In the config file, you can see we set 3 for the classes. Here, the other two dimensions each stand for x-axis and y-axis gradient field. They predicts the relative position w.r.t. center of the cell center (median of h,w).

Although we also mentioned in our paper as "Gradient Tracking" Sections, the act of how this tracking works is explained in more details at the CellPose paper. The gradient tracking parts in our code is a refactored version of their official code.


Add a session based login

We're using standard JWT authentication right now, but we need more fine-grained control over the tokens. Specifically, we want the ability to immediately invalidate a user's login session when their account is deactivated.

This issue is fixed in this PR https://github.com/cs-quicklabs/quick-learn/pull/50


Updated docs for react + typescript!

I am trying to add this to my project build with react+typescript. This set up seems to be a bit more involved than 2 lines.

Found an up-to-date version for react here. This could somehow be integrated with this package to bring it back to modernity.


Backport ReadExact hang fix to 0.5.x

I'm going to bed in a minute, feel free to cargo publish and tag it when CI is done.


fix  limits to clean job_templates

Previously, the query only returns a part of the templates that awx has. With the upgrade, you have a limit of 1000 templates.

Declined, please review https://github.com/nephelaiio/ansible-playbooks-awx/commit/6534f7e5ca0308aaa0debbb9de814e4da6426d28


ModuleNotFoundError: No module named 'gi'

Hi there, I'm a mac user with no coding knowhow trying to use this to download Morrowind on my Mac (without having to use Bootcamp) to play with OpenMW. In trying to run the steam-appmanifest In Terminal, I encountered the error named in the title. The whole error says this:
"t.py ; exit;
Traceback (most recent call last):
File "/Users/MYCOMPUTER/Desktop/steam-appmanifest.py", line 16, in
from gi.repository import Gtk
ModuleNotFoundError: No module named 'gi'
logout

Hey, @rseiver96, this is a dependency problem.
As explained in the readme file, on mac osx you should install pygobject3 to use the script, this error tells me you didn't have the pygobject3 installed.

For anyone googling, the README is incorrect. Leave out the --with-python3 flag, which appears to be deprecated.


⚠ Bofrost.com has degraded performance

In 8bb5ac2, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 1495 ms

Resolved: Bofrost.com performance has improved in 702b025 after 6 minutes.


kill process on startup test on errors

[ ] I added an entry to CHANGELOG.md if knowledge of this change could be valuable to users.

Here is a brief summary of what I did:

 Test it_starts_without_warnings_and_accepts_connections leaks main-process


Adding academic discipline generator

Closes #20

The currently failing tests are fixed in #31 (and only got into Main cause I pushed code I meant to delete...sorry about that). Merging 31 will probably create a conflict here that I can resolve once that's approved.


Italian Translations

Hi @jawache  @sebasrivera96 what if I add Italian translation? Is it ok for you?

I will defer this question to @jawache, but I think this page will soon be deprecated. The new "source-of-truth" will be the Green Practitioner Training: http://learn.greensoftware.foundation/.

ok thank u!

Ahh yes, that's the new version and this site will be dereciated and forwarded to that one. The other is still open source however I don't believe we'll be accepting translations just yet, not till we have a process to keep everything updated!


Wrong indentation suggested

In multiple files, it says that the indentation is incorrect, even tho it isn't.

Please provide a gist or actual copied code; screenshots aren’t really useful. Also, can you get the same output on the command line?

https://gist.github.com/BreakTruth/4ba1b9b8fa2d72f4e5c6fe9a45cb4239
And no, the CLI doesn't give the error. Then I presume it has to do with the linter-eslint package for atom

If it's only happening in atom, then it's definitely an issue with that package.
I don't personally use atom, so i can't help :-/


Removed num dependency from sdl2-sys

I replaced num::FromPrimitive in /sdl2-sys/src/video.rs with own trait FromPrimitive, then removed num dependency from sdl2-sys.  I also made a minor alteration to the implementation of the trait so as to make the code compile.

Nice one, cheers!


Investigate named wallet export issue

In this PR, we investigate #7 (with an integration test of course)
In addition, we:

Add tests for creating default and named wallets, and failures on attempting to recreate an existing wallet
Add tests for exporting default and named wallets (which covers the issue above
Use a single thread to run tests as we don't want the tests to hog several available ports to run the daemons, and we want to avoid running out of available ports

@buffrr If you can take a call on whether we should add long and short specification for the name arg for this command, I can update the issue accordingly (with a fix if necessary). It might help to be consistent in our args specification.

The defined way to export a named wallet is to use the command like:
space-cli --chain [chain] exportwallet <name>

but the command used in the issue is
space-cli --chain [chain] exportwallet -w <name>

Hence the default value for the name arg is picked up. We can allow long and short specification for the name argument for this command but it's not present at the moment. Even if we allow, the short arg will be -n and not -w.
But the reason this comes up is because of the help text:
space-cli exportwallet --help
Export a wallet

Usage: space-cli --chain <CHAIN> exportwallet [OPTIONS] [NAME]

Arguments:
  [NAME]  [default: default]

Options:
  -w, --wallet <WALLET>  Specify wallet to use [default: default]
  -d, --dust <DUST>      Custom dust amount in sat for auction outputs
      --force            Force invalid transaction (for testing only)
  -h, --help             Print help

Since we specify -w <wallet> as an option for every command, users can expect this. We might have to ensure consistency in the CLI and it might be worth spending some time on this. @buffrr what do you think?

Will reopen when I've added more tests


Fixing typo in AAD v2 quickstarts

Fixed typo on ClaimsPrincipal.

@jhutchings1,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@jhutchings1 : Thanks for your contribution to the Azure documentation! The author, @dstrockis, has been notified to review your proposed change.

#sign-off


99emergency-timeout/virtio-dump: wait before dumping

When systemd activates us as a result of switching to
emergency.target, journald might still be collecting and writing back
messages from various services. If we run too early, we'll be missing
out on those.
As a hack, wait until the 'Journal stopped' message from journald is
written before dumping the whole journal. Timeout at 30s.

Putting this here so we don't lose it. Once the ignition-dracut repo is merged, I'll re-open against f-c-c.

@jlebon can you kindly rebase onto Ignition itself?

Closing this out, since this repository is abandoned.  Please reopen against coreos/ignition.


Order types by Namespace before FullName

This fixes #389

@jnyrup Thanks for contribution. I'm sure it would be better to opt-in in such feature since for many users it will be breaking change forcing them to reorder approval files. Please add new option in ApiGeneratorOptions like public OrderMode OrderBy { get; set; } = OrderMode.FullName;
public enum OrderMode
{
    FullName,
    NamespaceThenFullName,
}

Thanks for the feedback.
Opt-in does indeed seems like a good compromise 👍
I've went ahead and implemented the suggestion with an OrderMode enum exposed in ApiGeneratorOptions.
What do you think about instead generalizing this to let the user provide the TypeReference comparer?
The downside being that we then reference Mono.Cecil.TypeReference in the PublicApiGenerator API.
public Comparer<TypeReference> TypeComparer { get; set; } = new FullNameComparer();

Where FullNameComparer would be
internal sealed class FullNameComparer : Comparer<TypeReference>
{
    public override int Compare(TypeReference x, TypeReference y) =>
        StringComparer.Ordinal.Compare(x.FullName, y.FullName);
}

What do you think about instead generalizing this to let the user provide the TypeReference comparer?

I would not. All Mono.Cecil stuff is internal implementation detail.

Addressed the comment about only sorting top-level types and Code Coverage should also be better now - let's see what CI thinks.

Append new enum in ExcludeTypes list inside Should_exclude_types test.

Append new enum in ExcludeTypes list inside Should_exclude_types test.

Thanks, had branched of before #394

https://github.com/PublicApiGenerator/PublicApiGenerator/releases/tag/11.3.0


Converted all line endings to CRLF.

I have converted all line endings to CRLF as requested on the issues page (#146).

I have now also added EOLs at the end of files that didn't have one.

Not gonna merge EOLs unless you can also provide a method to ensure this happens automatically on commit (else it will just get undone on next merge).

If you rebase this PR to just CRLF fixes I will merge, though.

@peppy I have removed the EOL commit as requested.

what are you changing on the files which had correct CRLF definitions previously?

@peppy whatever unix2dos thinks should be changed, as I just ran all plaintext files through it.

I'm hesitant to rewrite every file's header info if it's not necessary. Won't be merging this until more information is provided.


Js strict mode

Continues https://github.com/rescript-lang/syntax/pull/470

This is currently a breaking change as it makes some .res code not parse anymore.
Plus, a bunch of .ml roundtrip tests cannot pass as they are not representable in ReScript.
So the underlying issue is that the generated code is not strict JS.
One way to go about it is to emit valid strict JS, and do not introduce breaking changes.
So:

Even when the source containts let dd = "\123" parse successfully and emit strict JS.
Reformat it so that the source itself uses strict JS, i.e. to let dd = "\x53".

Roundtrip tests are not going to succeed.
As the OCaml parser will put \123 in the AST, but the next step when parser from a .res file it will be stored in the AST as x7b.

Since we got rid of Reason, maybe we can also drop the ml round trip?

Removing the .ml roundtrip tests brings down the time by about 30%.


External stream still gets created if sasl_mechanism is wrong

Describe what's wrong

@ye11ow reported in Slack:

I’m trying to create an ext stream with wrong sasl type
CREATE EXTERNAL STREAM ext_calvin_test(raw string)
SETTINGS type='kafka',
brokers='pkc-ld537.ca-central-1.aws.confluent.cloud:9092',
topic='calvin_test',
security_protocol='SASL_SSL',
sasl_mechanism='SCRAM-SHA-512',  <- This is wrong so the ext stream should not work
username='YYY',
password='XXX'

What I expect is that the creation will fail. However, I was able to create the ext stream

How to reproduce
Error message and/or stacktrace

Additional context

(Jove Github Bot) added it to the current sprint.


One "require" to use ANT API

Currently, ANT app should execute separated require() calls to use ANT API.

Example) ANT app that uses both App API and Camera API

var appApi = require(process.env.OPEL_BIN_DIR + '/api/app-api');
var cameraApi = require(process.env.OPEL_BIN_DIR + '/api/camera-api');

It is because each API is implemented separately. Each API is implemented as a separated binary.
On the other hand, as libant-message library is introduced for IPC, message handling is handled by the libant-message.
Since libant-message spawns its own message listening thread, separated binary makes duplicated message listening thread.
Therefore, API-related binary (that utilizes libant-message) need to be unified to single binary as following example.
As machine learning API will be implemented with the library, require call also should be unified to single call.

Example) ANT app that uses both App API, Camera API and Machine Learning API

var antAPI = require(process.env.OPEL_BIN_DIR + '/api/ant-api');
var appAPI = antAPI.app;
var cameraAPI = antAPI.camera;
var mlAPI = antAPI.ml;

:clap:

:+1:

It is sub-issue of Issue #79.
If Issue #79 is resolved, this issue will be solved also.
Therefore, I close this issue.


Is there anyway for imgLiquid to work with lazy loaded images?

I'm working to get imgLiquid to work in tandem with http://kenwheeler.github.io/slick/
But using the lazy loading provided by Slick is causing the images to not show up at all when using imgLiquid, i've tried attaching the function to various callbacks in Slick but no luck so far.
Regards,
Devon Mather

I've had success with using https://github.com/toddmotto/echo

Any code example for this ?

this works perfectly
echo.init({
offset: 100,
throttle: 250,
unload: false,
callback: function (element, op) {
      $(element).parent().addClass('imgLiquidFill');
      $(".imgLiquidFill").imgLiquid();

    }
});