linker failing on ppc64le

With op-build master (c57597296f58a6a2354e909fc81d6e3b4686bb8d) the linker step never exits. If I attach to one of the linker processes:
sudo strace -p `pgrep linker`
write(1, "Success\n", 8)                = 8
write(3, "securerom.elf,0x0\n", 18)     = 18
write(1, "Error writing to output.\n", 25) = 25
write(1, "Success\n", 8)                = 8
write(3, "securerom.elf,0x0\n", 18)     = 18
write(1, "Error writing to output.\n", 25) = 25
write(1, "Success\n", 8)                = 8
^Cwrite(3, "securerom.elf,0x0\n", 18)     = 18

Printing this sequence continually.
Taking a look at the spot in the build process between when it's succeeding and failing:
write(1, "\tSymbol: __cxa_guard_acquire\n", 29	Symbol: __cxa_guard_acquire
) = 29
write(1, "\t\tAddress: 178\n", 15		Address: 178
)      = 15
write(1, "\t\tGLOBAL\n", 9		GLOBAL
)             = 9
write(1, "\t\tFUNCTION\n", 11		FUNCTION
)          = 11
write(1, "\n", 1
)                       = 1
_llseek(4, 0, [0], SEEK_CUR)            = 0
_llseek(4, 0, [0], SEEK_CUR)            = 0
fstat(4, {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
_llseek(4, 12288, [12288], SEEK_CUR)    = 0
write(4, "|B\23x|@\0\246xB\10@xB\370\2|[\3\2468@0\34|Z\3\246| \4\254"..., 4096) = 4096
write(4, "UJ\6\276\231I\0@| \4\254\201$\0\0a)\0\20\221$\0\0\201#\0\30/\211\0\0"..., 3332) = 3332
_llseek(4, 16384, [16384], SEEK_SET)    = 0
read(4, "UJ\6\276\231I\0@| \4\254\201$\0\0a)\0\20\221$\0\0\201#\0\30/\211\0\0"..., 4096) = 3332
_llseek(4, 4, [19720], SEEK_CUR)        = 0
write(4, "\27\10 \21INVALID_SECTION\0\0\0\0\0\0\0\0\0\0\0M0"..., 1336) = 1336
_llseek(4, 20480, [20480], SEEK_SET)    = 0
read(4, "\0\0\0\0\0\0>\260\0\0\0\0\0\0\315\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0>\314"..., 4096) = 576
write(3, "hbibl.elf,0x0\n", 14)         = 14
write(1, "Error writing to output.\n", 25Error writing to output.
) = 25
write(1, "Success\n", 8Success
)                = 8
write(3, "hbibl.elf,0x0\n", 14)         = 14
write(1, "Error writing to output.\n", 25Error writing to output.
) = 25
write(1, "Success\n", 8Success
)                = 8
write(3, "hbibl.elf,0x0\n", 14)         = 14
write(1, "Error writing to output.\n", 25Error writing to output.
) = 25
write(1, "Success\n", 8Success
)                = 8
write(3, "hbibl.elf,0x0\n", 14)         = 14
write(1, "Error writing to output.\n", 25Error writing to output.
) = 25
write(1, "Success\n", 8)                = -1 EPIPE (Broken pipe)

This is using Ubuntu 18.10 on ppc64le.

op-build master(cc3dcdc55fd36c1bb2d13519a5b187a2d443a843) fails during hostboot compilation as it gets stuck during the linker stage and fills up the entire disk
Steps:
#git clone https://github.com/open-power/op-build
#cd op-build
# git submodule init && git submodule update
# . op-build-env
# op-build habanero_defconfig && op-build
...
...
    LD         hbicore.elf^M
    LD         hbicore_test.elf^M
    LD         hbirt.elf^M
    LD         hbirt_test.elf^M
    LINKER     hbirt_test.bin^M
    LINKER     hbirt.bin^M
    LINKER     hbicore_test.bin^M
    LINKER     hbicore.bin^M
^M
bzip2: I/O or other error, bailing out.  Possible reason follows.^M
bzip2: No space left on device^M
        Input file = (stdin), output file = (stdout)^M
make[4]: *** [../src/build/mkrules/images.rules.mk:53: ../img/hbicore_test.bin] Error 1^M
make[4]: *** Waiting for unfinished jobs....^M
^M
bzip2: I/O or other error, bailing out.  Possible reason follows.^M
bzip2: No space left on device^M
        Input file = (stdin), output file = (stdout)^M
make[4]: *** [../src/build/mkrules/images.rules.mk:53: ../img/hbirt_test.bin] Error 1^M
^M
bzip2: I/O or other error, bailing out.  Possible reason follows.^M
bzip2: No space left on device^M
        Input file = (stdin), output file = (stdout)^M
make[4]: *** [../src/build/mkrules/images.rules.mk:53: ../img/hbirt.bin] Error 1^M
u -sh *^M

du -sh output/build/hostboot-p8-d3025f5d7ddd0723946bb54fcb471d2bf1fd2da4/
57G     output/build/hostboot-p8-d3025f5d7ddd0723946bb54fcb471d2bf1fd2da4/

Host Env:
P8 Tuleta with Fedora 28 base
# uname -r
4.18.0-g6e61beb7

# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/ppc64le-redhat-linux/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: ppc64le-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-targets=powerpcle-linux --disable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-secureplt --with-long-double-128 --with-cpu-32=power8 --with-tune-32=power8 --with-cpu-64=power8 --with-tune-64=power8 --build=ppc64le-redhat-linux
Thread model: posix
gcc version 8.1.1 20180712 (Red Hat 8.1.1-5) (GCC)

We might be seeing the same underlying problem trying to update the Talos II / Blackbird firmware, but it's showing somewhat different symptoms on latest GIT master:
listdeps.pl ./img  -v
    MAKE       src IMAGE
    CSCOPE
    CTAGS
    LINKER     hbibl.bin
    LINKER     hbicore.bin
    LINKER     hbicore_test.bin
    LINKER     hbirt.bin
    LINKER     hbirt_test.bin
    LINKER     securerom.bin
26+0 records in
26+0 records out
26 bytes copied, 0.000158844 s, 164 kB/s
exception caught: Expected 1366965 found 2243509 at 2374040
../src/build/mkrules/images.rules.mk:53: recipe for target '../img/hbirt.bin' failed
make[4]: *** [../img/hbirt.bin] Error 255
make[4]: *** Waiting for unfinished jobs....
exception caught: Expected 1366965 found 2243509 at 2374040
../src/build/mkrules/images.rules.mk:53: recipe for target '../img/hbirt_test.bin' failed
make[4]: *** [../img/hbirt_test.bin] Error 255
exception caught: Expected 371 found<PHONE_NUMBER> at 290588
../src/build/mkrules/images.rules.mk:53: recipe for target '../img/hbicore.bin' failed
make[4]: *** [../img/hbicore.bin] Error 255
exception caught: Expected 371 found<PHONE_NUMBER> at 290588
../src/build/mkrules/images.rules.mk:53: recipe for target '../img/hbicore_test.bin' failed
make[4]: *** [../img/hbicore_test.bin] Error 255
../src/build/mkrules/passes.rules.mk:105: recipe for target '_BUILD/PASSES/IMAGE/BODY' failed
make[3]: *** [_BUILD/PASSES/IMAGE/BODY] Error 2
src/build/mkrules/passes.rules.mk:105: recipe for target '_BUILD/SUBDIR/IMAGE/src' failed
make[2]: *** [_BUILD/SUBDIR/IMAGE/src] Error 2
make[2]: *** Waiting for unfinished jobs....
src/build/mkrules/passes.rules.mk:105: recipe for target '_BUILD/PASSES/IMAGE/POST' failed
make[1]: *** [_BUILD/PASSES/IMAGE/POST] Error 2
make[1]: Leaving directory '/TALOS_FW_DEV/pnor/talos-op-build/output/build/hostboot-e8ef2bbe5c9bc999249163146c74d1889bbf39fd'
package/pkg-generic.mk:238: recipe for target '/TALOS_FW_DEV/pnor/talos-op-build/output/build/hostboot-e8ef2bbe5c9bc999249163146c74d1889bbf39fd/.stamp_built' failed
make: *** [/TALOS_FW_DEV/pnor/talos-op-build/output/build/hostboot-e8ef2bbe5c9bc999249163146c74d1889bbf39fd/.stamp_built] Error 2
make: Leaving directory '/TALOS_FW_DEV/pnor/talos-op-build/buildroot'

It looks like this was fixed in commit 9be05f40, should this report be closed?

Sounds right to me, reopen if something is still broken.


halide: 15.0.1 -> 16.0.0

This PR supersedes  #241047.
Description of changes
Link to the upstream release: https://github.com/halide/Halide/releases/tag/v16.0.0

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[X] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Testing on x86_64-darwin, fails to compile fuzz tests.
[ 86%] Building CXX object test/fuzz/CMakeFiles/fuzz_bounds.dir/bounds.cpp.o
[ 86%] Linking CXX executable runtime_internal_memory_arena
error: current translation unit is compiled with the target feature '-fsanitize=fuzzer-no-link' but the AST file was not
1 error generated.
make[2]: *** [test/fuzz/CMakeFiles/fuzz_bounds.dir/build.make:78: test/fuzz/CMakeFiles/fuzz_bounds.dir/bounds.cpp.o] Error 1

Post-release, upstream committed https://github.com/halide/Halide/commit/09c5d1d19ec8e6280ccbc01a8a12decfb27226ba to disable these tests unless specifically requested. Prolly either fetchpatch to change the default ahead of the next release or set WITH_TEST_FUZZ to off.

@OPNA2608 thanks, fixed!


send/@type not reflected into the event or options arguments of InterpreterScriptingContext.send

Using 2.0.0-w3c-ecma branch.
Given:

  <send type="custom"
    targetexpr="someVar" event="app.ping" namelist="x y z"/>

it's useful (essential) for a custom the scxml.scion.InterpreterScriptingContext impl to be able to receive the send type in order to implement the specific type of send - without having to introspect on the target.
I'm sure this was exposed in SCION 1.0.

@mattoshry I am going to formalize this into an API which we will officially support. I will follow up with you with more information about this.


Add TraceAbleRequestContextStorage for ease of detect context leaks

Motivation:

Context leaks are hard to find because an exception does not tell where/which context is pushed without poping. By using TraceAbleRequestContextStorage, it helps to report the source of context leaks.
Details as mentioned in #4100

By the way, Thanks to @anuraaga for giving a reference to read on opentelemetry.
Modifications:

Add TraceAbleRequestContextStorage that stores RequestContext stack trace and reports to the user where it happens.
Add requestContextLeakDetectionSampler flag that users can use for enable leak detection. Users can enable it by either system property or SPI flag provider.

Result:

Closes #4100
TraceAbleRequestContextStorage is added, so users can use it to report where context leaks happen.

How to enable:

By system property
-Dcom.linecorp.armeria.requestContextLeakDetectionSampler=<sampler-spec>

By providing FlagsProvider SPI

public final class EnableLeakDetectionFlagsProvider implements FlagsProvider {

    @Override
    public Sampler<? super RequestContext> requestContextLeakDetectionSampler() {
        return Sampler.always();
    }
    ...
}

By providing RequestContextStorageProvider SPI (not recommend since RequestContextStorageProvider SPI'll be remove as mentioned in #https://github.com/line/armeria/issues/4211 )

public final class CustomRequestContextStorageProvider implements RequestContextStorageProvider {

    @Override
    public RequestContextStorage newStorage() {
        return new TraceAbleRequestContextStorage(delegate);
    }
}

Use case:
Users problematic code
executor.execute(() -> {
    SafeCloseable leaked = fooCtx.push(); //This causes Request context leaks!
    ...
});

executor.execute(() -> {
    try (SafeCloseable ignored = barCtx.push()) { //Exception happen here
        ...
    }
});

The above code will produce an error as below. Therefore, users can check the stack trace that which line causes context leaks.
java.lang.IllegalStateException: Trying to call object wrapped with context [%New RequestContext%], but context is currently set to [%Previous RequestContext%]. This means the callback was called from an unexpected thread or forgetting to close the previous context.
	at com.linecorp.armeria.internal.common.RequestContextUtil.newIllegalContextPushingException(RequestContextUtil.java:116)
	at com.linecorp.armeria.common.LeakTracingRequestContextStorage.push(LeakTracingRequestContextStorage.java:78)
....
com.linecorp.armeria.common.TraceAbleRequestContextStorage$PendingRequestContextStackTrace: At thread [%ThreadName%], previous RequestContext didn't popped : [%Previous RequestContext%], It is pushed at the following stacktrace
	at com.linecorp.armeria.common.TraceAbleRequestContextStorage.push(TraceAbleRequestContextStorage.java:65)
	at com.linecorp.armeria.internal.common.RequestContextUtil.getAndSet(RequestContextUtil.java:143)
	at com.linecorp.armeria.server.ServiceRequestContext.push(ServiceRequestContext.java:220)
	at com.linecorp.armeria.common.TraceRequestContextLeakTest.lambda$multiThreadContextLeak$6(TraceRequestContextLeakTest.java:168) <- This is the line where RequestContext is push without popping afterward.

Here is the benchmark result.
Benchmark                                                              Mode  Cnt          Score         Error  Units
LeakTracingRequestContextStorageBenchmark.baseline_threadLocal        thrpt    5  138905863.970 ± 1832287.597  ops/s
LeakTracingRequestContextStorageBenchmark.leakTracing_always_sample   thrpt    5    1347325.018 ±    7907.388  ops/s
LeakTracingRequestContextStorageBenchmark.leakTracing_never_sample    thrpt    5   10762418.543 ±   43741.747  ops/s
LeakTracingRequestContextStorageBenchmark.leakTracing_random_1        thrpt    5    9351586.968 ±    8154.426  ops/s
LeakTracingRequestContextStorageBenchmark.leakTracing_random_10       thrpt    5    5915767.799 ±   15699.257  ops/s
LeakTracingRequestContextStorageBenchmark.leakTracing_rateLimited_1   thrpt    5    9677373.483 ±   46283.720  ops/s
LeakTracingRequestContextStorageBenchmark.leakTracing_rateLimited_10  thrpt    5   10027495.272 ±  129500.874  ops/s

Command
./gradlew --no-daemon :benchmarks:jmh:clean :benchmarks:jmh:jmh -Pjmh.includes=com.linecorp.armeria.common.LeakTracingRequestContextStorageBenchmark

Machine

I test on my local machine

Observation

It seems like ThreadLocalRequestContextStorage has ~100 times ops/s compare to always-sample LeakTracingRequestContextStorage. Also, ThreadLocalRequestContextStorage has ~13 times ops/s compare to never-sample LeakTracingRequestContextStorage
One odd thing is that rate-limited 1 op/s is less than rate-limited 10 ops/s. I expect that the more sample rate, the fewer ops/s. I run the test a couple of times and this trend is always presented.

From the data above, should I do something to fix/optimize it? By the way, I'm really new to benchmarking, so might fall into pitfalls. If something is incorrect with the benchmark test, please let me know. Thank you. 🙏

@klurpicolo Thanks a lot for your hard work and really sorry for the late review. 😅
Added some of my opinions to the comments that others left. 😉

@Override
public void pop(RequestContext current, @Nullable RequestContext toRestore) {
    final ContextAndStackTrace last = threadLocalStack.get().peekLast();
   if (last == null || last.ctx != current) {
       // exception!
   }
   threadLocalStack.get().pop();
   delegate.pop(current, toRestore);
}

Question: Is this validation safe when RequestContext.replace() is called?

Is this validation safe when RequestContext.replace() is called?

That's a good point.
Actually, pop is not a problem because it switches to the original context. The problem happens at push when RequestContext.replace() is called.
Currently, we validate the illegal context in ClientRequestContext and ServiceRequestContext not in the storage.
So we are able to skip the validation when RequestContext.replace() is called.
However, because this PR moves the validation logic into RequestContextStorage.push(), we need a way to bypass the validation for RequestContext.replace() call.
I think we have three options:

Add attribute to the context that indicates the current context is replacing before RequestContextStorage.push() is called
Add RequestContextStorage.push(RequestContext toPush, boolean forceReplace) to skip the validation
Remove the LeakTracingRequestContextStorage and use the validation logic in RequestContext as it is and store the stack of stack traces in RequestContextUtil.

I think the third option is the way to go because currently we are using RequestContextUtil to push and pop and even creating newIllegalContextPoppingException there.
All we have to do is probably:

Adding and removing the stack traces when push and pop is called.
Using the stack of stacktraces when the illegal context is created.

What do you think? /cc @anuraaga

I didn't look into this PR in detail but the OTel debug storage is completely independent of the default one - since the storage only needs to keep track of pushes / pops for leaks it should be able to just wrap them. Perhaps the reference queue approach is helping so would suggest considering really straight porting from OTel.
One key point is to make sure unit tests can check for leaks easily. They just signal to the debug storage when there should be no more active scopes.
https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/testing-common/src/main/java/io/opentelemetry/instrumentation/testing/junit/InstrumentationExtension.java#L54
If I understand the option, it seems similar to Netty where the context itself keeps track of traces. I don't think this would allow the explicit leak check (the context, which ends up owning it's own debugging in this case, already leaked). Writing tests to use Netty's leak detection is pretty annoying since it means setting the build infra to recognize the log message - it'd be good if this can be avoided.

Currently LeakTracingRequestContextStorage 1) keeps track of stack traces and 2) validates the correctness of the old current context.
As 2) is handled by RequestContext.push(), I prefer to remove 2) logic from LeakTracingRequestContextStorage.
LeakTracingRequestContextStorage may focus on sampling whether to debug and track the current stack with a hint.
class LeakTracingRequestContextStorage {

    public <T extends RequestContext> T push(RequestContext toPush) {
        // The sampler may return true if a RequestContext was touched before.
        if (sampler.isSampled(toPush)) {
            // touch() will push the current stack trace to the queue of a `RequestContext`;
            // `newIllegalContextPushingException` may use the stored stack traces queue for debug.
            toPush.touch();
        }
        return delegate.push(toPush);
    }
}

interface RequestContext {

     void touch();

     // RequestContextStackTrace will return all stack traces that were added whenever `touch()` is called.
     @Nullable
     RequestContextStackTrace trace();
}

As 2) is handled by RequestContext.push(), I prefer to remove 2) logic from LeakTracingRequestContextStorage.

I agree with you on it.
The validation is not activated by a flag or whatever, we always want to validate the illegal context when RequestContext.push() is called.
Also, the context should be pushed without validation if RequestContextUtil.replace() is called.
So I don't think we need to move the validation logic into another class. We can do that in RequestContext.push() as is.
We should focus on storing the stack of stack traces in this PR.
For RequestContext.touch() and RequestContext.trace(), we cannot do that because a context can be pushed by multiple threads which means we cannot keep the stack trace of a context in it. We need a ThreadLocal for that.
So here's what I'm suggesting.

Create a static field in RequestContextUtil to store the stack traces:private static final FastThreadLocal<Deque<ContextAndStackTrace>> threadLocalStack = ...

Store the current stack trace when requestContextStorage.push(ctx) is called in RequestContextUtil.
Remove the stack trace when requestContextStorage.pop(current, toRestore) is called in RequestContextUtil.

The RequestContextStorage should be able to know if the context is replacing(which means we need to skip the validation) or not and I'm not sure if there's any better way to determine it. Does the OTel have similar cases? How do you handle it?

While OTel doesn't have a replace case, it probably wouldn't be that different because the tracking isn't of context itself. It tracks Scope (SafeCloseable in Armeria). We can't forget that there isn't any such thing as a "leaked context", it's more a "leaked scope".
https://github.com/open-telemetry/opentelemetry-java/blob/main/context/src/main/java/io/opentelemetry/context/StrictContextStorage.java#L64
When it's closed, it's removed from tracking.
https://github.com/open-telemetry/opentelemetry-java/blob/main/context/src/main/java/io/opentelemetry/context/StrictContextStorage.java#L159
When the storage is "closed" (when you want to check for leaks), it just seems what's left
https://github.com/open-telemetry/opentelemetry-java/blob/main/context/src/main/java/io/opentelemetry/context/StrictContextStorage.java#L133
So you can check for leaked scopes by just seeing what's still being tracked at an appropriate time.
Since Armeria's storage interface has push / pop, it would look a little different - I'd recommend using RequestContextWrapper to hold a closed field and stack (it's why I started #3219 so long ago 😆). If not implementing detection of when this gets GC'd without being closed, a normal set would be enough, otherwise the weak map / cleaner callback can help detect leaks even without explicitly checking.
This looks similar to @minwoox's idea, but there's no real need to make it static instead of keeping it local to the debug context storage instance, and FastThreadLocal can't really be used because there wouldn't be a way to find the leaks from another thread like the junit thread.

@klurpicolo I'm really sorry for making you get confused and for the misdirection. 🙏
Had a chat with @anuraaga and I have realized that I had misunderstood something.
you might want to refer to the thread: https://line-armeria.slack.com/archives/C1NGPBUH2/p1655787953048989
So @anuraaga's idea was not to move the illegal context validation into the storage.
It's just creating a wrapper for the context so that we can get the stack trace later.
We can validate the collision in RequestContext.push as is.
One more thing I have realized is that we don't need the stack to store stack traces.
We can just show the stack trace of the current context so that users can debug with it.
So here's what we need to do:

Remove validation logic in the current LeakTracingRequestContextStorage:
Wrap the pushed context before delegate.push(toPush); is called

The wrapper has a stack trace so that it's shown from the message of IllegalStateException.
We need two wrappers which implement ServiceRequestContext and ClientRequestContext.

This is the snippet what I explained:
public <T extends RequestContext> T push(RequestContext toPush) {
    requireNonNull(toPush, "toPush");
    if (!sampled) {
        delegate.push(toPush);
    }
    delegate.push(new TraceableRequestContext(toPush));
}

// We actually two different wrappers for `ServiceRequestContext` and `ClientRequestContext`.
private static class TraceableRequestContext extends RequestContextWrapper {

    private final StackTraceElement[] stackTraceElements;

    /**
     * Creates a new instance.
     * @param delegate
     */
    protected TraceableRequestContext(RequestContext delegate) {
        super(delegate);
        this.stackTraceElements = Thread.currentThread.getStackTraces();
    }

    @Override
    public String toString() {
        return ... //
    }
}

There're two things that I didn't mention:

We are checking the instance of DefaultClientRequestContext and DefaultServiceRequestContext at some of the places: https://github.com/line/armeria/blob/master/core/src/main/java/com/linecorp/armeria/client/HttpResponseDecoder.java#L357

@jrhee17 was handling this case by adding .as() so please do not worry about it. We can just focus on adding two wrappers

Adding a boolean field to the wrapper(TraceableRequestContext.closed) so that we can raise an exception when the object is GCd if the boolean field is false

I don't think we need it at this moment. We can implement it later so let's do that step by step. 😄

@klurpicolo I'm really sorry for making you get confused and for the misdirection. 🙏 Had a chat with @anuraaga and I have realized that I had misunderstood something. you might want to refer to the thread: https://line-armeria.slack.com/archives/C1NGPBUH2/p1655787953048989
So @anuraaga's idea was not to move the illegal context validation into the storage. It's just creating a wrapper for the context so that we can get the stack trace later. We can validate the collision in RequestContext.push as is. One more thing I have realized is that we don't need the stack to store stack traces. We can just show the stack trace of the current context so that users can debug with it.
So here's what we need to do:

Remove validation logic in the current LeakTracingRequestContextStorage:

Wrap the pushed context before delegate.push(toPush); is called

The wrapper has a stack trace so that it's shown from the message of IllegalStateException.
We need two wrappers which implement ServiceRequestContext and ClientRequestContext.

This is the snippet what I explained:
public <T extends RequestContext> T push(RequestContext toPush) {
    requireNonNull(toPush, "toPush");
    if (!sampled) {
        delegate.push(toPush);
    }
    delegate.push(new TraceableRequestContext(toPush));
}

// We actually need two different wrappers for `ServiceRequestContext` and `ClientRequestContext`.
private static class TraceableRequestContext extends RequestContextWrapper {

    private final StackTraceElement[] stackTraceElements;

    /**
     * Creates a new instance.
     * @param delegate
     */
    protected TraceableRequestContext(RequestContext delegate) {
        super(delegate);
        this.stackTraceElements = Thread.currentThread.getStackTraces();
    }

    @Override
    public String toString() {
        return ... // We need well defined toString.
    }
}

There're two things that I didn't mention:

We are checking the instance of DefaultClientRequestContext and DefaultServiceRequestContext at some of the places: https://github.com/line/armeria/blob/master/core/src/main/java/com/linecorp/armeria/client/HttpResponseDecoder.java#L357

@jrhee17 was handling this case by adding .as() so please do not worry about it. We can just focus on adding two wrappers

Adding a boolean field to the wrapper(TraceableRequestContext.closed) so that we can raise an exception when the object is GCd if the boolean field is false

I don't think we need it at this moment. We can implement it later so let's do that step by step. 😄

Let me digest everything and get back later. It was a really good discussion. Thanks a lot for all explanation🙏.
I accidentally close the pull resquest😱, sorry for that.

Reopen

After I read through conversion in Slack and try to implement it, I have a question.
Here is what I understand.
RequestContext.push()  -(A)                             return SafeCloseAble  -(E)
 |                                                       ^
 v                                                       |
Validation on Service/Client RequestContext  -(B)       return SafeCloseAble
 |                                                       ^
 v                                                       |
RequestContextUtil.setAndset                            RequestContextUtil.invokeHookAndPop
 |                                                       ^
 v                                                       |
TraceAbleRequestContextStorage.push -(C)                TraceAbleRequestContextStorage.pop  -(D)
 |                                                       ^
 v                                                       |
ThreadLocalRequestContextStorage.push                   ThreadLocalRequestContextStorage.pop

To show the stack trace when illegal RequestContext is pushed and fails to pass validation at (B). We need to push the wrapped context that shows its stack trace when RequestContextUtil.newIllegalContextPushingException is called.
At point (C), warp RequestContext as you show in the snippet and pass it down to delegate.  Also, to pop later when (D) is called, we have to store it in a map by using RequestContext as the key and remove it from the map after pop() is called.
Map<RequestContext, RequestContextWrapper> pendingWrappers

push(toPush) {
    1. wrap toPush
    2. add <toPush, wrappedToPush> to `pendingWrappers`
    3. return delegate.push(warped)
}

pop(current, toPush) {
    1. warpCurrent get by pendingWrappers.remove(current) -(F)
    2. delegate.pop(warpCurrent, toRestore)
}

Then I retest with this unit test.
@Test
    void pushWithOldClientCtxWhoseRootIsThisServiceCtx() {
        final ServiceRequestContext sctx = serviceRequestContext();
        try (SafeCloseable ignored = sctx.push()) {
            assertCurrentCtx(sctx);
            // The root of ClientRequestContext is sctx.
            final ClientRequestContext cctx = clientRequestContext();
            try (SafeCloseable ignored1 = cctx.push()) {
                assertCurrentCtx(cctx);
                try (SafeCloseable ignored2 = sctx.push()) {
                    assertCurrentCtx(sctx);
                } <-- (G)
                assertCurrentCtx(cctx);
            }
            assertCurrentCtx(sctx);
        }  <-- (H)
        assertCurrentCtx(null);
    }

The case is ServiceRequestContext is pushed twice with ClientRequestContext in between, By using map with RequestContext as key cannot support this case because at point (G) the entry is removed from the map and then cause error at (H). To support this case, I think I might use WeakKey<RequestContext> and just get not removed at (F), so the entry will be removed only if the RequestContext is no longer referenced. I'd like to get consulted by maintainers on whether this is a good approach or if there is an alternative solution to this case.

Wow, what an illustration! 😉

To support this case, I think I might use WeakKey and just get not removed at (F), so the entry will be removed only if the RequestContext is no longer referenced. I'd like to get consulted by maintainers on whether this is a good approach or if there is an alternative solution to this case.

Instead of not removing the ctx at (F), how about just focusing on implementing the wrapper for the context when pushing?, which means removing pendingWrappers from your code?
As I said, I don't think we need that feature at the moment. Also, I think there're no problems so far without it.
If we think it's really useful, we can add it later in a separate PR.
What do you think of it?
Also, there's one thing I didn't mention that we need to use equals() instead of reference check here:
https://github.com/line/armeria/blob/master/core/src/main/java/com/linecorp/armeria/common/ThreadLocalRequestContextStorage.java#L49

Also, there's one thing I didn't mention that we need to use equals()

I got it now. I try to map RequestContext to warpped back and forth and at TraceAbleRequestContextStorage because I thought that callers and degelate rely on reference checking. If we use equal instead then we don't need pendingWrappers anymore. Thanks for clarification 🙏

If we use equal() instead then we don't need pendingWrappers anymore.

Actually, @jrhee17 is implementing peel in this  so we can use that:
aCtx.peel() == bCtx.peel()

Hi! Sorry about the late share 🙏
The following two PRs have been merged, so I think we can resume with this pull request.

https://github.com/line/armeria/pull/4308
https://github.com/line/armeria/pull/4338

Thanks to all reviewers for these meaningful suggestions! 🙇🙇🙇


[iOS] Fix Property names in iOS Staff model with real staff and contributor KMM models

Kind (Required)

Improvement

Overview (Required)

This is occurred by https://github.com/DroidKaigi/conference-app-2021/pull/634 changes.
So, please fix iOS model' s property names with real name.

About contribution
Points need to change (I think this is all)
- Change id type to Int
- Change property names
  - name -> username
  - url -> profileUrl
  - image -> iconUrl

About pull-request
Please create Pull Request to DroidKaigi2021/use-real-contributor-and-staff-api branch.
Links

👀


Pressing ctrl-Z does not undo

When I swap out a textarea for this component I can no longer use ctrl-Z to undo. Firefox browser.

Probably need some more info and ideally a repo/zip/project with a test case replicating the bug.
I am currently switching to react-textarea-autosize and tested it in Firefox, ctrl-Z seems to work fine


Initial commit for Postgres backend support

Opening this up for review in response to https://github.com/openzipkin/zipkin/issues/1232
Saw the rejected PR https://github.com/openzipkin/zipkin/pull/3228
Open to suggestions on reworking the schema for better storage. IMO the combination of index + structure should hold decent performance, and outside of actually using referential integrity (fk's and the like) I'm keen to try it as is. If performance became a problem, setting a minimum version of pg 10-12 + leveraging table partitioning would probably do a pretty good job to break up the data enough.
Thoughts? @codefromthecrypt know you've been big on keeping this maintainable for future so happy to collaborate :)

I'm swamped in my new world of wasm, so won't be able to chime in or help support this. Folks currently on the show might decide differently than my previous opinions, so I'll leave it up to them!

Awaiting this feature to get merged !!

+1

Any regarding this PR ?
I would be interested by the functionality.

Hi people. Thanks for showing interest on this feature. At the moment I don't think we have enough capacity to support a new storage in the core repo. How about moving this code to a repository where people can consume and try out and then when prooved to work we move to the contrib section?
In my experience working out a storage implementation isn't an easy task and hence we better do it carefuly.


Updated Ch1/1 with Emoji

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


update readme and add some files

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


lost 100 of Polkadot

Avoid them at all costs lost 100 of Polkadot token as everything did look legit but it is not

Do we have it listed in the phishing list?
https://polkadot.js.org/phishing/
if not, it should be added.


mk_prepare_ligand.py

Sorry, man, I have to ask one more silly question. When I do mk_preprare_ligand.py function, returned back as
No module named 'openbabel',
but I already installed openbabel. And it worked well by using openbabel function directly, like obabel ixx.pdb oxx.pdbqt. But the directly converted pdbqt cannot perform docking, errors like this
Command line parse error: unrecognised option
Really appreciated your kindly help, bests.

and plus, when i convert to pdbqt, the structure of ligand looks wired, like this below.

Do you know why this happened

i figured out the problems, thanks, i will close this


multi send multi message

how to send multi number multi send
for example
message: test1
gsm :<PHONE_NUMBER>5
message: test1
gsm :<PHONE_NUMBER>5

Hello tarikogut,
You can send a message with the same text to multiple numbers like this:
$smsMessage = new SMSRequest();
$smsMessage->senderAddress = SENDER_ADDRESS;
$smsMessage->address = '90123456745,90123456746,90123456747';
$smsMessage->message = 'Hello world';

If you want to send different message text, you will have to make another SMSRequest.
$smsMessage1 = new SMSRequest();
$smsMessage1->senderAddress = SENDER_ADDRESS;
$smsMessage1->address = '90123456745,90123456746,90123456747';
$smsMessage1->message = 'Text 1';

$smsMessage2 = new SMSRequest();
$smsMessage2->senderAddress = SENDER_ADDRESS;
$smsMessage2->address = '90123456748,90123456749';
$smsMessage2->message = 'Text 2';

which version ?

If you are not using composer, switch to 0.0.3-alpha branch.
In case you are using composer, you can use the latest version 1.1.3 on master branch.

only working single submit many numbers
2015-03-09 10:57 GMT+02:00 Ana Marjanovic<EMAIL_ADDRESS>
If you are not using composer, switch to 0.0.3-alpha branch.
In case you are using composer, you can use the latest version 1.1.3 on
master branch.
—
Reply to this email directly or view it on GitHub
https://github.com/infobip/oneapi-php/issues/10#issuecomment-77818787.

Would you please explain this in detail? What is not working?


feat: add localModelRootDirectory options

Some ideas are for reference only 😆

emmm, bash reports an error on windows, let me fix it~


[FLINK-7459] Generalize Flink's redirection logic

What is the purpose of the change
Introduce RedirectHandler which can be extended to add redirection functionality to all
SimpleInboundChannelHandlers. This allows to share the same functionality across the
StaticFileServerHandler and the RuntimeMonitorHandlerBase which could now be removed.
In the future, the AbstractRestHandler will also extend the RedirectHandler.
This PR is based on #4549.
Brief change log

Introduce RedirectHandler which encapsulates the redirection logic
Let StaticFileServerHandler and RuntimeMonitorHandler extend the RedirectHandler

Verifying this change
This change added tests and can be verified as follows:

Added test RedirectHandlerTest which tests the redirection logic

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

Rebasing onto the latest master.


Add and configure prettier

Added prettier to the project for code formatting, to keep us all on the same code style.  .prettierrc is based on projects I've worked on in the past.
This PR also adds lint-staged and husky to run prettier on precommit, per prettier's docs
Added a prettier command to package.json to run prettier formatting on the codebase.
TODO:

[x] I haven't run npm run prettier yet - figured that would make a good test!

This should be all set once this builds 👍


Add private swap example

Description
An example showcasing how to perform a swap where token addresses and amount are confidential, protecting the transaction from sandwich attacks.
Included an illustrative Pool contract with a swap function
contract Pool {
    ...
    function swap(address from, address to, uint256 amount) external returns (uint256) {
        ...
        return amount * 2;
    }
}

Closing, use case is contemplated in https://github.com/zeroXbrock/unisuapp


stderr getting lost in padStream

When logConcurrentOutput is enabled no stderr is making it to the console. Remove the stream padding and stderr reappears.

Can you provide a minimal runnable example?
The code for stderr is exactly the same as stdout, so I find it weird that only it would have this issue: https://github.com/sindresorhus/grunt-concurrent/blob/0d76521f09919e97704c45868dc1e86ce1352537/tasks/concurrent.js#L53

Struggling to make a simple repro. The issue arises when one of the tasks calls webpack (via grunt-shell) with the --progress flag (which outputs build progress on stderr).

Closing for lack of repro.


Nonce is too small (Bitfinex)

Got "Nonce is too small" message frequently.
2017-08-18 16:47:08 Error API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/balances
Caught API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/balances reading from exchange API, ignoring.

You shouldn't reuse API keys.

Nope. Even I created a new one. I am still getting the message for some time.

I am testing the nonce function with below. If this helps, I will submit a PR.
return str(int(round(time.time() * 10000)))

Hmm.. I don't think it's an issue of the nonce function.

For this str(time.time()), it returns
>>> str(time.time())
'1503050009.62'
>>> str(time.time())
'1503050010.15'
>>> str(time.time())
'1503050010.47'
>>> str(time.time())
'1503050010.65'
>>> str(time.time())
'1503050010.81'
>>> str(time.time())
'1503050010.94'
>>> str(time.time())
'1503050011.07'
>>> str(time.time())

If the decimals are ignored and the bot make multiple API requests in a short period of time. Chances are "Nonce is too small" response is generated from Bitfinex.

You are correct, Poloniex nonce uses a multiplier.
https://github.com/BitBotFactory/poloniexlendingbot/blob/master/modules/Poloniex.py#L109

I have the same problem. Create new API key was not effective.

I am having the same issue, already tried to change api

I one of you guys @ououmin @CyberBaby @mark-995  will confirm that multiplying the time by 1000 on this line: https://github.com/BitBotFactory/poloniexlendingbot/blob/master/modules/Bitfinex.py#L32
Solves the issue, I'll make the change.

I think it works. No more 'nonce' message. Thanks.

@ououmin
can you check the following:
return  str(int(time.time()) * 1000)

I used code of @CyberBaby .
return str(int(round(time.time() * 1000)))
And it works good.

Pushed a fix to master.

Not good.
I saw "Nonce is too small." message again, just a moment ago. :(
But it's very long time, no see.

@ououmin What env are you using?

@rnevet  Running bot at pythonanywhere.com

This is not a perm fix. Still looking for a solution.

https://api.bitfinex.com/v1/pubticker/btcusd
150328556863691
https://api.bitfinex.com/v1/offers
150328556930958
https://api.bitfinex.com/v1/balances
150328556984182
https://api.bitfinex.com/v1/credits
150328557022396
https://api.bitfinex.com/v1/credits
150328557036593
https://api.bitfinex.com/v1/balances
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits

not sure why still getting Nonce is too small.

Limiting the supported currencies seems help. (If you don't have other currency to lend)
[BITFINEX]
#Full list of supported currencies
all_currencies = BTC

The problem is the usage of time.time(). Documentation says: "Note that even though the time is always returned as a floating point number, not all systems provide time with a better precision than 1 second. While this function normally returns non-decreasing values, it can return a lower value than a previous call if the system clock has been set back between the two calls."
I observed same issue on Poloniex, same nonce method.
Concrete in our case two possible causes:

to many calls within precision of time(), so we get same nonce
change of system time

I agree, it seems to be platform dependent... my test environment, and Digital Ocean do not present this issue.  However I did find some suggestion on how to get a more precise time calculation.

I just had this issue as well, it started today pretty much. I was running without it for several hours but then it started:
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits

I've been running Bitfinex for over 2 weeks on my server at home (Debian 7) without any issue like this.

It happens seemingly at random times. Perhaps it has to do with the number of coins being lent? too many calls too close to each other or something? Mine is running on a VM with 24 virtual processors so not sure if there is multithreading or something causing this. I am just throwing darts in the dark here.
$ python2.7 lendingbot.py
Welcome to Lending Bot on BITFINEX
WARN: Incorrect coin entered for transferCurrencies: DSH
WARN: Incorrect coin entered for transferCurrencies: OMG
WARN: Incorrect coin entered for transferCurrencies: IOT
WARN: Incorrect coin entered for transferCurrencies: BTC
WARN: Incorrect coin entered for transferCurrencies: XRP
Error in MarketAnalysis: API Error 429: { "error": "ERR_RATE_LIMIT"} Requesting https://api.bitfinex.com/v1/lendbook/ZEC?limit_asks=5&limit_bids=5
WARN: Incorrect coin entered for transferCurrencies: ZEC
WARN: Incorrect coin entered for transferCurrencies: EOS
WARN: Incorrect coin entered for transferCurrencies: LTC
WARN: Incorrect coin entered for transferCurrencies: ETH
2017-08-24 14:23:55 Error API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new
Caught API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new reading from exchange API, ignoring.
2017-08-24 14:31:01 Error API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new
Caught API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new reading from exchange API, ignoring.
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
2017-08-24 15:54:27 Error API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new
Caught API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new reading from exchange API, ignoring.
2017-08-24 15:56:21 Error HTTPSConnectionPool(host='api.bitfinex.com', port=443): Read timed out. (read timeout=30) Requesting https://api.bitfinex.com/v1/offer/new
Timed out, will retry in 60.0sec
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
2017-08-24 17:00:33 Error API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new
Caught API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new reading from exchange API, ignoring.
2017-08-24 17:59:22 Error API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
Caught API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits reading from exchange API, ignoring.
2017-08-24 18:00:22 Error API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
Caught API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits reading from exchange API, ignoring.
2017-08-24 18:03:25 Error API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
Caught API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits reading from exchange API, ignoring.
Error in MarketAnalysis: HTTPSConnectionPool(host='api.bitfinex.com', port=443): Read timed out. (read timeout=30) Requesting https://api.bitfinex.com/v1/lendbook/OMG?limit_asks=5&limit_bids=5
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
2017-08-24 19:13:26 Error API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new
Caught API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/offer/new reading from exchange API, ignoring.
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits

Why don't you edit the code and have it print the nonce out to console on each API call? Then you can indeed see if it is repeating them.

Can you help me with the file/line and code if possible? I've only done .Net and I am not familiar with the code of the bot but willing to help debug this. Thank you!

modules/Bitfinex.py:32

I've tried to print the nonce, it was never repeated. But i am still getting the error. Running on a Pi3.

I'll post once the error happens again. Thus far nothing...

This isn't terribly helpful:
NONCE:<PHONE_NUMBER>291
NONCE:<PHONE_NUMBER>609
Error during new loans notification: API Error 400: {"message":"Nonce is too small."} Requesting https://api.bitfinex.com/v1/credits
NONCE:<PHONE_NUMBER>945

Hrm. You are 100% positive you are not using this API key anywhere else?

Yes. I created a new one just for this bot and have it only on one computer.

Just sent a support request to Bitfinex because I see no reason why the nonce is getting bounced. It is increasing as it should and it is consistent with all the other ones.

@JCBauza any update?

haven't heard back from them yet :(

Hey @JCBauza, still no answer from bitfinex support?
Thanks

Just heard back today:
I may be wrong but I see this happening when you send two messages in rapid succession (NONCE:<PHONE_NUMBER>631,<PHONE_NUMBER>980 = 349ms, and NONCE:<PHONE_NUMBER>864,<PHONE_NUMBER>880 = 16ms).
It is possible that using REST services, a certain amount of network lag could interfere with message delivery order and trigger that "Nonce too small" error.
In order to verify my theory, please try again to see if this happens again waiting 500-800ms between requests.

Thanks for your answer.
I was already waiting 1 second between each API call, but still had the issue. I figured it out by increasing numbers of digits I send to the endpoint.
In PHP I know use this method to generate nonce, and this is working:
$nonce = (string) number_format(round(microtime(true) * 10000000), 0, '.', '');
Hope this can help.

Been looking at this myself also. I've changed a few things and raised a PR:

The number was being rounded. I don't see why this is needed. I thought it was part of the issue initially, but I'm not sure now. If the second call to time returns a slightly lower value (see py doc below), close to .5 it would be rounded down and be lower than the first then. Though I think the same thing would happen with the 1.0 boundary. Anyway, it's redundant.
I've increase the multiplier from 1000 to 100000, which should decrease the chance of collisions. Note however, this is OS dependent. (see below)

time.time()

    Return the time in seconds since the epoch as a floating point number. Note that even though the time is always returned as a floating point number, not all systems provide time with a better precision than 1 second. While this function normally returns non-decreasing values, it can return a lower value than a previous call if the system clock has been set back between the two calls.

I've been running this in my on env (where I've seen nonce problems) with no issues for a while now. I'll let it run 24 hours.
https://github.com/BitBotFactory/poloniexlendingbot/pull/520

I've got this code running on another bot that, on start, determines what your starting nonce should be. And every so often it does a check to update it again. Maybe something similar could be implemented?
    def getNonceStart(self):
        post = "command=returnFeeInfo&nonce=1"
        headers = self.getPostHeaders(post)
        resp = False
        while not resp:
            resp = self.curlRequest("https://" + self.polo_ip + "/tradingApi", self.getPostHeaders(post), post)
            if not resp or "\"error\":\"Nonce" not in resp:
                print("Failed to retrieve nonce from poloniex, retrying in 30 seconds.")
                time.sleep(30)
        self.nonce = re.search("greater than (\d+)", resp)
        self.nonce = int(self.nonce.group(1)) + 1
        print("Got nonce " + str(self.nonce) + " from poloniex.")

@utdrmac, that depends on a response containing the nonce from Poloniex "greater than...", is there one from Bitfinex?  I also don't think this should be necessary as time should be a good enough nonce base.

I am not having the issue after the fix, thanks @laxdog !

I have resolved this problem in the follow way. In my case have many threads interacting with Bitfinex, so I had to synchronize the getNonce method.
/**
 * nonce to exchange api requests.
 */
private static long nonce = System.currentTimeMillis();

private static void sleep(long millis) {
	try {
		Thread.sleep(millis);
	} catch (InterruptedException e) {
		Logger.log(e.getMessage());
		e.printStackTrace();
	}
}

/**
 * Generate nonce.
 *
 * @return generated nonce.
 */
protected synchronized static long getNonce() {
	// Sleep 100 milliseconds to avoid too close exchange api requests.
	sleep(100);
	return nonce++;
}

The POSt, GET methods are synced in current version.

But the question here is to guarantee that the threads get the nonce and then send the posts in the same order (the first to get is the first to call the post method). If two threads sleep at the same time this is not guaranteed.

As the entire call is synced and nonce is only called from within then this should be guaranteed.


[WoD] A way to store/track WP spends

There is an idea from one of our patrons to make it possible to track the Willpower.
To quote: "Tracking initiative, some way to just store/track WP spends".
Tracking stuff was on my mind as well. Maybe design a generic system for that.

/r $wp = 7 to record WP.
/r $wp to check it.


Enable local mocking to use URLs with OpenAPI definition

I'd love to run the following and have it mocked
kusk mock -i https://pastebin.com/raw/xJzei3rH

Currently it displays an error message
kusk mock -i https://pastebin.com/raw/xJzei3rH
⨯ unable to parse openapi config: unable to load spec: open /Users/aabedraba/github/aabedraba/kusk-demo/https:/pastebin.com/raw/xJzei3rH: no such file or directory 💔

The openapi-mock library allows url based openapi definitions https://github.com/muonsoft/openapi-mock/blob/master/README.md?plain=1#L39


return nil err when a permission target doesn't exist

[x] All tests passed. If this feature is not already covered by the tests, I added new tests.
[x] This pull request is on the dev branch.
[x] I used gofmt for formatting the code before submitting the pull request.

Addresses https://github.com/jfrog/jfrog-client-go/issues/336

I acknowledge the above comments. Please standby until I get further clarification on my end. Thanks

I have read the CLA Document and I hereby sign the CLA

sorry for direct ping @eyalbe4 as i saw you merged the last time. can I get a review?

recheckcla

@eyalbe4 I have added doc and test. also doc for get user and get group


Recovery services vault

File changes:

Removed: src\resources\Microsoft.Authorization\policyDefinitions\deploy-rv_backuphealth_alert.bicep
Removed: src\resources\Microsoft.Authorization\policyDefinitions\deploy-rv_backuphealth_alert.json
Added: src\resources\Microsoft.Authorization\policyDefinitions\deploy-rv_backuphealth_monitor.bicep

Changes to infra-as-code\bicep\deploy_dine_policies.bicep:

Removed deployment: module rv_backuphealth_policy '../../src/resources/Microsoft.Authorization/policyDefinitions/deploy-rv_backuphealth_alert.bicep'
Added deployment: module rv_backuphealthmonitor_policy '../../src/resources/Microsoft.Authorization/policyDefinitions/deploy-rv_backuphealth_monitor.bicep'

Changes to src\resources\Microsoft.Authorization\policySetDefinitions\ALZ-MonitorLandingZone.json:
Removed parameters:

RVBackupHealthAlertSeverity
RVBackupHealthWindowSize
RVBackupHealthEvaluationFrequency
RVBackupHealthPolicyEffect
RVBackupHealthAlertState
RVBackupHealthThreshold

Added Parameters

RVBackupHealthMonitorPolicyEffect

Other:

Removed PolicyDefinition: "policyDefinitionId": "[concat('/providers/Microsoft.Management/managementGroups/',managementGroup().name, '/providers/Microsoft.Authorization/policyDefinitions/Deploy_RecoveryVault_BackupHealth_Alert')]"
Added PolicyDefinition: "policyDefinitionId": "[concat('/providers/Microsoft.Management/managementGroups/',managementGroup().name, '/providers/Microsoft.Authorization/policyDefinitions/Deploy_RecoveryVault_BackupHealthMonitor_Alert')]"

Changes to: infra-as-code\bicep\parameters-complete-landingzones.json:
Removed parameters:

RVBackupHealthAlertSeverity
RVBackupHealthWindowSize
RVBackupHealthEvaluationFrequency
RVBackupHealthPolicyEffect
RVBackupHealthAlertState
RVBackupHealthThreshold

Added parameters:

RVBackupHealthMonitorPolicyEffect

Changes to: docs\wiki\PolicyInitiatives.md:

Updated LZ table, removing old definition and including the new RSV alert definition.

Evidence
Policy deployment

Remediation

Vault configuration

Great work @arjenhuitema could you please update the link to MonitoringAndAlerting in the main Readme as well? Then I'll approve :-)

Done! Thanks Jan.


ImportError: dynamic module does not define module export function (PyInit__pydantic_core)

Hello, I am trying to import openai in my visual studio code and face with "ImportError: dynamic module does not define module export function (PyInit__pydantic_core)" error, I really dont have any idea of how resolving it, my pydantic version is 2.5.3 and my pydantic_core version is 2.15.0, my python code is 3.11.7, I appreciate any help.

@ResearcherSara,
pydantic 2.5.3 only supports pydantic-core 2.14.6, so I'm guessing that's the issue. Let me know if the issue persists when you use that older pydantic-core version. Thanks!

@ResearcherSara,
pydantic 2.5.3 only supports pydantic-core 2.14.6, so I'm guessing that's the issue. Let me know if the issue persists when you use that older pydantic-core version. Thanks!

Thanks for your advice, I installed pydantic-2.14.6 and the issue still exists .

This sounds like the Python environment is set up incorrectly. @ResearcherSara perhaps if you can give a bit more detail on what OS you're running and how you installed Python and pydantic, we might be able to offer further suggestions.


Add docs of SWR Error Handling

This PR adds the docs of Error Handling, including 3 sections:

Status Code and Error Object
Error Retry
Global Error Report

https://swr-site-git-add-error-handling.vercel.now.sh/docs/error-handling

📝Changed routes:

/docs/error-handling
/docs/meta

(view full size)
(view full size)

Commit a6ddec0ded84594f44e07a483b0402ad311dab64 (https://swr-site-git-add-error-handling.vercel.now.sh).

I have a question around error handling: is it possible to have a situation where both error and data are defined, or is it always one of the two?

Isn't a better idea to throw an error which inherits from the Error object? :)

@jensmeindertsma It's possible to have both of them defined. For example if you have data successfully fetched (stale data), and then a revalidation is triggered and that request errored, error will be assigned too.
It will be helpful when building a "Refresh" button. So you can display existing data, with the error message if it fails to reload. I created an example for it: https://codesandbox.io/s/swr-states-4une7?file=/src/App.js.
Will include it in the docs as well! Thanks for the suggestion.

@Alexis-Bize Yep! That makes sense. I'll update the docs.


Implement run command.

This PR proposes a new command that runs the service but doesn’t start it at login (nor boot).
It is based on the discussion in PR #87.
Feedback is welcome.

Looking good so far! A few nits. May also want to add this as a test to .travis.yml too.

Done. As you can tell, I'm not a Ruby guy. Anyway, removed all the nits and added a test. Maybe I should add one more to test if the *.plist was not installed? Also I did not squash the commits to make it easier to review. Let me know if you want me to do so afterwards.

Great work! Thanks for your first contribution to Homebrew!  You rock!


[Draft] Updated the structure of the bar graph function

This draft is intended to share the current development progress share and the vscode extension file structure.
It's related to #52 and #87
Problem
There is no problem when checking the lint in local, but it fails in check-format of github action.
Is it possible to change the existing lint setting? Or is there any other way?
Preview

Done

Click Load, a file selection dialog will pop up
You can visualize JSON files.
Zoom-in/Zoom-out is possible.
pid(GPU/CPU) usage is displayed.

You can open/close  the panel.
Fixed left bar
Make the color a bit prettier
When zoomed in/out, the scale is dynamically created/deleted.
Zoom in with the slider.
It's linked to the me in vcode. All elements follow the vscdoe theme color.
Bar multi-selection (individual multi-selection).

Todo

When you click origin, appear the node graph as a new web view. 🔼
Capture complete message pop-up. 🔽
Capture (Rejected from vcode webview due to security issues). 💥

How to run

npm install
npm run build
Press F5 to run extension
When a new window in vscode opens, press ctrl + shift + P to enter ONE: one-vscode-extension command.

There is a difference between Ubuntu and window path setting, so this part is being fixed.

I think some of layout/designs are referencing https://github.com/catapult-project/catapult/tree/957c117e514f4f5524a200cbe85030a7e579b125/tracing/tracing/ui.
For those files, please add following statements at the top of the files.
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//    * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//    * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//    * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.

I will close this draft because it has been discussed enough, and i have received the desired answer.
Additional content is here #126  .


Multiple paths result in multiple widgets that could be unwanted

Hello! I've recently rolled this out to my k8s cluster and I'm noticing something a little annoying (at least for me). Every ingress that has multiple paths will result in multiple of the same widget (just with a number appended to the name). While this might be helpful in some cases, I would think that in most it's not the desired behavior. Take, for instance, my media domain's ingress (stripped down to just radarr and sonarr so no one has to read that text wall):
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: k8s-mediaserver
  annotations:
    homepagesc.neutrino.io/appName: Radarr
    homepagesc.neutrino.io/group: Media
    homepagesc.neutrino.io/healthCheck: http://radarr.mediaserver.svc.cluster.local:7878/
    homepagesc.neutrino.io/icon: radarr.png
spec:
  rules:
    - host: beep.boop.com
      http:
        paths:
          - path: /radarr
            pathType: Prefix
            backend:
              service:
                name: radarr
                port:
                  number: 7878
          - path: /sonarr
            pathType: Prefix
            backend:
              service:
                name: sonarr
                port:
                  number: 8989
          - path: /backend1
            pathType: Prefix
            backend:
              service:
                name: backend1
                port:
                  number: 9000

I like having my media services underneath one domain so I don't have a billion subdomains sitting around. However, each of these show up as just another "Mediaserver-{N}" for the last three path rules. I also cannot control the paths individually, so I have to settle for only having one widget type, one widget name, and one widget icon for all paths underneath the same Ingress. I have a couple of Ingress resources that also just have separate paths for an additional backend service for a given Prefix. I don't really want to have that on Homepage, just one of the multiple paths representing the frontend. A finer grained control around multiple paths would be ideal.
Without knowing anything nearly anything about Go and how hard this might be, I have this proposal to halfheartedly offer:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: k8s-mediaserver
  annotations:
    homepagesc.neutrino.io/appName: Radarr
    homepagesc.neutrino.io/group: Media
    homepagesc.neutrino.io/healthCheck: http://radarr.mediaserver.svc.cluster.local:7878/
    homepagesc.neutrino.io/icon: radarr.png
    homepagesc.neutrino.io/path1.appName: Sonarr
    homepagesc.neutrino.io/path1.group: Media
    homepagesc.neutrino.io/path1.healthCheck: http://sonarr.mediaserver.svc.cluster.local:9696/
    homepagesc.neutrino.io/path1.icon: sonarr.png
    homepagesc.neutrino.io/path3.enable: false

This might not be the best format, but hopefully the intention comes across clear. I really am quite enjoying this, btw. This has really helped me get my services under control in Homepage. Thanks for all of the hard work.

Hi there, I came across this repo over the last week or two and noticed that it doesn't look to be actively maintained. I've forked the repo and made some changes that I needed including something similar to your suggestion above. If you want to use my fork, you can find it here: https://github.com/scme0/homepagesc
The way the mutliple path handling works is that you can specify the annotations for individual paths with the following format: homepagesc.io/<service_name>_<port_number>_<annotation_label>
Ingress objects with a single host/path should use the original annotations.
Note that I've changed the base of the annotation to homepagesc.io for brevity.
For instance your example:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: k8s-mediaserver
  annotations:
    homepagesc.io/radarr_7878_appName: Radarr
    homepagesc.io/radarr_7878_group: Media
    homepagesc.io/radarr_7878_healthCheck: http://radarr.mediaserver.svc.cluster.local:7878/
    homepagesc.io/radarr_7878_icon: radarr.png
    homepagesc.io/sonarr_8989_enable: 'false'
    homepagesc.io/backend1_9000_enable: 'false'
spec:
  rules:
    - host: beep.boop.com
      http:
        paths:
          - path: /radarr
            pathType: Prefix
            backend:
              service:
                name: radarr
                port:
                  number: 7878
          - path: /sonarr
            pathType: Prefix
            backend:
              service:
                name: sonarr
                port:
                  number: 8989
          - path: /backend1
            pathType: Prefix
            backend:
              service:
                name: backend1
                port:
                  number: 9000


Adding SAB table for GF180MCU DRC

Adding SAB table for GF180MCU DRC

@proppy Could you please merge this?

Great work and sorry for the late review!


Stuck on "Activating..."

Hi, I installed your extension but it doesn't seem to work, it stays stuck on "Activating...", running Flow from CLI works just fine, I already specified the flow-bin location. Ideas?

@FezVrasta Hi!
Could you share a minimal project structure zip file so I can try and reproduce the issue?
Without reproducing my first thought would be to check the flow config file. What is the name of your flowconfig file?

I'm running it from a subfolder, maybe the extension expects the flowconfig file to be in the root?
I'm in a monorepo where only one of the projects uses Flow

In that case I believe the issue comes from the folder structure. For the sake of getting a fix quick, could you share your flowconfig and a sample project hierarchy that I could use to reproduce?

Closing for inactivity, feel free to reopen if you want to add more information!


Text with multilines

Multiline text are not properly displayed.

Hey @macpoupou , please allow some time. I will go through and update the code. Thank you for indicating problem.


Add/Delete Mentors Screen-Admin-App - Sprint 3

Description:

Build the Screen using the style guide.
Integrate Screen with the Backend

@Honeyloveet I'll like to work on this task. kindly assign it to me. thank you

@tamsay this issue has been assigned to you


Add pooling interval to EventHistory hook

Description
Add a new poolingInterval optional parameter to useScaffoldEventHistory to be able to get the new events.
If we merge this PR, I will open a PR to update the doc.
Additional Information

[X] I have read the contributing docs (if this is your first contribution)
[X] This is not a duplicate of any existing pull request

Your ENS/address: damianmarti.eth

Hey @damianmarti , thanks for this!!
I always have to use the history hook + subscriber hook to get this behavior. So this might be better & simpler!
So we have pollingInterval in scaffold.config.ts which all the wagmi hooks with watch use. So to be more consistent... maybe it would be better to use that pollingInterval and just pass a watch flag to the hook?
(Just thinking out loud)

Hey @damianmarti , thanks for this!!
I always have to use the history hook + subscriber hook to get this behavior. So this might be better & simpler!
So we have pollingInterval in scaffold.config.ts which all the wagmi hooks with watch use. So to be more consistent... maybe it would be better to use that pollingInterval and just pass a watch flag to the hook?
(Just thinking out loud)

Makes sense!! Changed! Thanks!!

https://github.com/scaffold-eth/se2-docs/pull/38


[Documentation Request] Show all categories in the navigation sidebar

The documentation can be a bit cumbersome to navigate, as the navigation sidebar only shows the current page's sections plus the next page in the documentation. If you want to see the full table of contents, you have to return to the "Docs" page via the topbar.

What I'm requesting is to show all available subjects in the sidebar, and expand the list based on the page you're currently viewing.

Could you copy/paste this to https://github.com/chrismaltby/gb-studio-site/issues/new and close this one?

Oh will do! Didn't realize there was a separate repo for the site ✌


⚠ ClamAV has degraded performance

In ba5abbf, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 446 ms

Resolved: ClamAV performance has improved in 9f149d0.


valdrMessage not working correctly with multiple inputs for same model field

The given example iterate over some zone objects with the required field "code". Valdr validates each field and adds ng-valid/ng-invalid correctly. But valdrMessage show the error message only if the second field is invalid (and in this situation for both input fields).
<form name="validationErrorForm" ng-controller="ValidationForm as validationForm" novalidate>

      Code
      <input type="text" placeholder="Code" ng-model="zone.code" name="code" class="form-control">

</form>

ValdrMessage resolves the field by name and not by id which could be the origin of the problem. Is there a solution for this?

+1, any update on this?


RFC: Remove musl target from buildkite tests

Summary of the PR
Musl in CI for staging doesn't work yet. I'd like to ask everyone's opinion on if it's worth keeping or removing to begin with.
Requirements
Before submitting your PR, please make sure you addressed the following
requirements:

[x] All commits in this PR are signed (with git commit -s), and the commit
message has max 60 characters for the summary and max 75 characters for each
description line.
[x] All added/changed functionality has a corresponding unit/integration
test.
[x] All added/changed public-facing functionality has entries in the "Upcoming
Release" section of CHANGELOG.md (if no such section exists, please create one).
[x] Any newly added unsafe code is properly documented.

@stefano-garzarella or at least, remove until we add it back and it works. Thoughts?

@stefano-garzarella or at least, remove until we add it back and it works. Thoughts?

mmm, I would leave these tests the same as what we then have out of staging, so we always know if we can move a crate or not.
Then these tests are not PR blockers, so what would be the benefit of removing them?

Musl in CI for staging doesn't work yet. I'd like to ask everyone's opinion on if it's worth keeping or removing to begin with.

Doesn't it work for any crate in staging or just the sound device?

Then these tests are not PR blockers, so what would be the benefit of removing them?

Ah they are not blockers? I figured if we know they don't work it's not worth keeping them anyway. So let's close this PR.

Then these tests are not PR blockers, so what would be the benefit of removing them?

Ah they are not blockers? I figured if we know they don't work it's not worth keeping them anyway. So let's close this PR.

No, for now they are not blockers, since staging crate are WIP, we decided to not be so stringent.

Thanks for clearing it up :) closing


Better wording for the Error Conditions

Re: #2710

I was too late. :-(

It's never too late.

There is no reason for a UI copy to be technically disputable, unless you have to wrap it up really quick (which is not true for Symphony 2.7). On the contrary, I think that a UI copy that is readable and technically correct alike is a very good advertisment. As you say: The UI is what people will see!

Yes, but from a user's point of view, the options just tell: “This will display my error page.” Nothing more, nothing less.

I don't like this discussion. Symphony has taught me so much because the people who built it thought about every detail. And now you say "Let's just make it sloppy, who cares!".

That's not what I mean – and you know that. I'm just pointing out a different perspective.

I know, but let's rather spend our time on a correct and readable copy text.
What do you guys think about my latest proposal from here:
Meeting one of these conditions will cause a 404 Not Found response.

Meeting one of these conditions will cause a 404 Not Found response.

Sold!

Thanks a lot!

I'll still wait before merging and maybe get @brendo's approval.
@nilshoerrmann is it ok with you ? I feel like we have the right balance, and the technicality I care so much about is safe.


Change second column of defenses to be defense without armor

I noticed that you often need to know defense without armor (mostly for armor skirting attacks). On the other hand, defense against ranged attacks is not that useful, because what you usually want is defense vs missile and defense vs beam.
So the character sheet in the rules now shows defense with and without armor. It would be good to update the online character sheet to do the same. That is probably a good task for me (John), to get me familiar with working with all the nice new stuff. But I'm feeling a bit sick right now, so it may be a few days before I get to it.

Nice!

I'll take this on next. Looking at the code, it seems manageable.

One of the oddities, though, is that parry is really only applicable to melee.
Parrying doesn't make sense for ranged defense, hence, ranged attacks don't  don't have the parry input field.
Parry doesn't get used in any calculations. I wonder if it should be extracted out.

I could see a couple of options:

or

@johnlamping - thoughts?

I think I slightly prefer the two column version. But I think it would be better to have the armor column before the no armor column, because armor is the usual case. So the columns would be something like "Def.", "armor" "w/o armor"
Parry should work just like the other two defenses, now that there is no special case for ranged. The problem is that it needs to know what the parry bonus of your weapon is, and that isn't currently recorded on the character sheet. I can think of a couple of options: Add a new field to weapons, giving their parry bonus; then use the highest bonus as the bonus for parry. Add a new field to the defense block where you can fill in the Parry bonus. I don't see a nice place for it, though.
BTW, it would also be nice if the Block row has "--" values if you had no shield, and if the Parry row had "--" values if you ha no weapon with a parry bonus.

Maybe the column headers would be better as
So the columns would be better as "Def.", "Ability" "w/o armor"

I'll get something in place to review.
I suspect that the w/o armor will word wrap, though.

Maybe strikethrough, like armor?
On Mon, Jan 16, 2023 at 4:47 PM Jaz @.***> wrote:

[image: image]
https://user-images.githubusercontent.com/5629800/212786145-f7259a85-ebc0-45ac-bde3-e2b975a54d9d.png
—
Reply to this email directly, view it on GitHub
https://github.com/epic-power-rpg/roll20/issues/35#issuecomment-1384704115,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACTV55QYEUPXE3CKRH7WCNDWSXTYNANCNFSM6AAAAAATLSH6SE
.
You are receiving this because you were mentioned.Message ID:
@.***>

Ohh, that could work. Testing...

Also, tooltip when hovering:

Moved the parry topic to https://github.com/epic-power-rpg/roll20/issues/69

BTW, it would also be nice if the Block row has "--" values if you had no shield,

In https://github.com/epic-power-rpg/roll20/pull/68


Improved Semantic Model Measure Percentile defaults

resolves #7866
Description
Here we're updating use_discrete_percentile and use_approximate_percentile to be non optional and default to False. This was a mistake in our implementation of the MeasureAggregationParams. We had defined them as optional and defaulting to None. However, as the protocol states, they cannot be None, they must be a boolean value. Thus now we now ensure them.
Checklist

[X] I have read the contributing guide and understand what's expected of me
[X] I have signed the CLA
[X] I have run this code in development and it appears to resolve the stated issue
[X] This PR includes tests, or tests are not required/relevant for this PR
[X] I have opened an issue to add/update docs, or docs changes are not required/relevant for this PR
[X] I have run changie new to create a changelog entry

Gonna rebase to resolve merge conflicts


mouse evt added

hi, I was going through the project and it was annoying the drum wasn't working with mouse event, turns out you didnt add that functionality, so i just added that, please have a look

@amanzrx4  Thank you for your contribution. Looking forward to more such amazing contributions :)

Hey!! Thanks man, Apparently it's my first merged PR on github, it's a special one, I'll remember this;)

Hey!! Thanks man, Apparently it's my first merged PR on github, it's a special one, I'll remember this;)

That's great, Best of Luck the future endeavors.🥂


GPU point buffers implicitly convert data format

Uploading COLOR_RGB (format Vector3<u16>) data to a gpu point buffer will implicitly convert the data into Vector4<u32>. I guess this was done to allow accessing the data from compute shaders without relying on extensions for using 8-/16-bit types and non-vec4 alignment in shaders. But for vertex data, Vector3<u16> is usually supported without extensions and the conversion currently leads to much wasted space. I'd also argue that this implicit conversion is unexpected (at least when using the gpu point buffers in a context besides compute shaders).

Closing this since GPU-support in pasture is discontinued since version 0.4.


Hey man loved the data visualization project.

There seeems to be a problem in using the spotify api. Also the access token has expired. I'm new to this so would you mind explaining me what should i do in order to get the dataset. Also right now the individual year csv files generated in the first code are empty with nothing but the column heading.
I hope you would help me with my query.

Try using spotipy a python wrapper over spotify api.  Create your own access token by going to the spotify developer website and use it. The data is coming empty because the api's are getting any data. (401 error code I guess )

Ok, so i

Try using spotipy a python wrapper over spotify api. Create your own access token by going to the spotify developer website and use it. The data is coming empty because the api's are getting any data. (401 error code I guess )

Ok, so I created my own access token and replaced it, but the csv files which are being generated are still empty. It is not showing any error just blank files

CLIENT_ID = <your_client_id>
CLIENT_SECRET = <client_sceret>
token = util.oauth2.SpotifyClientCredentials(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
cache_token = token.get_access_token()
spotify = spotipy.Spotify(cache_token)
results = spotify.artists(artist_ids)
check what results give read the documentation of the various api to see what to send


Revisit file.PackFiles()

file.PackFiles() allows users to add files and pack a manifest quickly. But the current design might not be perfect.
We should revisit it and think about if we should keep/refactor/deprecate it in oras-go v2.0.0.
https://github.com/oras-project/oras-go/blob/1969551cc3c77b46f09090f00360e8465871fe8f/content/file/file.go#L429-L443

One use case of this function can be found here.

@Wwwsylvia I suggest removing this function, and adding an example instead.

+1 to an example with just one file add to show how someone can generate a manifest and to keep the lines of code less.


Prettify docs files

Summary
Prettier can also be used to format more than just JS files, it can format Markdown files too. Instead of using Flow parser for all files in prettier.config.js, we can just limit Flow parser for JS files and let Prettier find the default parsers for the various file formats.
Hence I tweaked the Prettier config and added overrides for:

JS format - Use Flow parser
Markdown format - Restrict to 80 characters so that it's easier to read

I then ran Prettier on all the docs. This formatting could potentially be in the lint-docs step, ran alongside with Alex. Lemme know if you want me to do that!
Test Plan
Load website.

Oh this is cool. Ideally yeah, let's enforce it in lint-docs. Can prettier automatically apply formatting to markdown files too? Adding that in format or a new script would be nice.


Flatten JSON

Hey,
The function is fully updated within my account.
I am producing the following JSON:
{
    "count": 2,
    "has_next": false,
    "page": 1,
    "results": {
        "test":"test2"
    }
}

The results I get:
{
  "count": 2,
  "has_next": false,
  "page": 1,
  "test": "test2"
}

I expected to get:
{
  "count": 2,
  "has_next": false,
  "page": 1,
  "results.test": "test2"
}

{
"messages": [
{
"headers": {},
"payload": "{"count":2,"has_next":false,"page":1,"results.test":"test2"}",
"error": ""
}
],
"failed_messages": null,
"logs": "START RequestId: 699197f7-6a9a-4100-a6c9-61b66dc86ab4 Version: $LATEST\nEND RequestId: 699197f7-6a9a-4100-a6c9-61b66dc86ab4\nREPORT RequestId: 699197f7-6a9a-4100-a6c9-61b66dc86ab4\tDuration: 1.61 ms\tBilled Duration: 49 ms\tMemory Size: 128 MB\tMax Memory Used: 15 MB\tInit Duration: 47.01 ms\t\n",
"error": ""
}

That's what I'm getting from cloud

For future reference, as of 12/18/2023 when this was reported, when a function was attached to a station, it needed to be deleted and then re-added in order for the function to update. flatten_json was did not have this bug at the time.


Adding ability to supply an HTTP Agent

This is helpful if you want to access vault behind a bastion.

Updated to latest master...believe it's good to go @petercunha

Looks good, hopefully one of the maintainers will review it soon 👍

@seangallavan Thanks for your PR and sorry for the very late merge.
@petercunha Released as v0.9.17 https://www.npmjs.com/package/node-vault/v/0.9.17


👌 IMPROVE: Minor Grammatical Edits

This PR addresses a couple of minor grammatical errors. Nothing major. Enjoying the demo, thank you! 🙌

Thank you!


Add labels API

/api/v1/labels to retrieve all seen label names
/api/v1/label/:name/values to get all label values for a named label
not bounded by time
returns all labels in a list of strings in a data property

@davkal Hello, do you have plan to continue this pr? If not I am happy to work on it.

Happy to take this now

Will add series as well

-> https://github.com/conprof/conprof/pull/81


Is READ_EXTERNAL_STORAGE permission required for rating?

Describe the bug
Apps about loans are rejected if they have READ_EXTERNAL_STORAGE permission. Is it possible to remove this permission from the package?
To Reproduce
Flutter app with rate_my_app package.
Screenshots

Smartphone (please complete the following information):

Device: Emulator Pixel 7 pro
OS: Android

We only need WRITE_EXTERNAL_STORAGE (https://github.com/Skyost/RateMyApp/blob/master/android/src/main/AndroidManifest.xml#L8), but it shouldn't cause any problem for Google review if you have correctly completed the "App content" section.

@Skyost Thanks for the answer. But in the manifest the WRITE_EXTERNAL_STORAGE permission is removed, not added? Isn't it? And READ_EXTERNAL_STORAGE is added by the package on the contrary.


GitHub Enterprise integration

:construction: Work in progress :construction:
Tasking

[x] update README.md
[ ] update https://support.leankit.com/ documentation : @reverentgeek :question:
[x] Build config ui for github enterprise host, post
[ ] update github integration code to switch on enterprise vs .com, and use the correct host/port
[ ] github api url needs to be a variable so that it can handle the differences in url in .com and GitHub Enterprise

closes #4

@reverentgeek signing you up for updating leankit integration support docs. if only it was gh-pages....

Why does GitHubIssuesSubSystem and GitHubPullsSubsystem not use GitHubConnection to access GitHub? Seems redundant, but maybe there's a reason...?

The current assumption in the Integration Service is the Host input field is the owner or organization name, and not the full URL. This value is used as part of the URL path when making API requests.
To support both github.com and Enterprise customers, I think we'll have to change the expected input to be either github.com/{owner} or {enterprise-url} and parse out owner in the case of the former.
When making API requests to Enterprise, I understand the api path starts with http(s)://hostname/api/v3/. Do Enterprise api requests have a concept of owner like standard GitHub API requests? E.g. GET /repos/:owner/:repo/issues is what we currently use to get a list of issues.
You're right, GitHubIssuesSubsystem and GitHubPullsSubsystem could probably be refactored to use GitHubConnection. That was probably on our list at one time, but never got around to it.

good details.

The current assumption in the Integration Service is the Host input field is the owner or organization name, and not the full URL. This value is used as part of the URL path when making API requests.

Ahh, that makes sense. I couldn't understand what that line in the docs was trying to say. Actually enterprise will work the same way as github.com (in the sense of https://{enterprise_fqdn}/{owner} The Enteprise API is a superset of the GitHub.com API, so the calls and syntax is all the same.
I'm not sure what sort of templating engine is being used for the web-frontend, but would it be possible to extend with additional form fields or cascading selection options? (ie, ask for a repo owner/organization seperately from a github url)?

You're right, GitHubIssuesSubsystem and GitHubPullsSubsystem could probably be refactored to use GitHubConnection. That was probably on our list at one time, but never got around to it.

Just wasn't sure if they was a specific reason for this that I wasn't understanding. :+1:


Fix a buffer overrun in HFTemplateController readBytes:size:

If the requested range wasn't in the cache, it would update the cache to a new kMaxCacheSize-length run and then try to copy out of it, even if more than kMaxCacheSize bytes were requested

Thanks!


Use localized string format for "other declaration" button

Bug/issue #, if applicable: 119615630
Summary
Use localized string format for "other declaration" button
Dependencies
NA
Testing
Verify the english version of the string is still rendered correctly, follow testing instructions here
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[x] Added tests
[x] Ran npm test, and it succeeded
[ ] Updated documentation if necessary

@swift-ci test

@swift-ci test


Fix and improve new messages retrieval on narrow switch

Automated message from Dropbox CLA bot
@borisyankov, it looks like you've already signed the Dropbox CLA. Thanks!


fix(dart): Add multiline flag to replace regex

The dart pubspec.yaml is updated here with regex, and the file contains newlines. To properly match the replacement, the /m flag is needed for multiline match and replace. Prior to this fix, pubspec.yaml was never updated with the dart strategy.
Fixes #1523 🦕

Thanks for submitting this, however, the current tests are failing. Also, we'd like to have a failing test case for what this is fixing and to prevent future regressions.

Sure thing, I will work on that and update the pull request

@chingor13 - I've pushed the requested changes - the failing test case was not possible because the issue at play was the snapshots were bad to begin with. It should be evident in the diff what's changed here and that it now works. Please feel free to follow up with any additional questions.

@chingor13 - I think I've resolved all the open issues at this point - please let me know if anything else is needed to merge this in.


az aks update --attach-acr erroring in 2.46.0

az feedback auto-generates most of the information requested below, as of CLI version 2.0.62

Related command
az aks update -g $RG -n $AKS --attach-acr $ACR
Describe the bug
When running the above command with an account that has owner for the subscription, the command returns the following error:
ERROR: Could not create a role assignment for ACR. Are you an Owner on this subscription?
To Reproduce
Download Azure CLI 2.45.0 (https://azcliprod.blob.core.windows.net/msi/azure-cli-2.45.0.msi) and run the command az aks update --attach-acr and confirm you receive AAD role propagation done[############################################]  100.0000% to indicate success.
Then download Azure CLI 2.46.0  (https://azcliprod.blob.core.windows.net/msi/azure-cli-2.46.0.msi) and run the same command and you will receive an error: ERROR: Could not create a role assignment for ACR. Are you an Owner on this subscription?
Expected behavior
Running the command  az aks update --attach-acr when you are an owner on the subscription should give you the following message:  AAD role propagation done[############################################]  100.0000%
Environment summary
Occurring on multiple enviornments, running Azure CLI 2.46.0 locally on Windows 10, using the AzureCLI@v2 task on a linux build agent
Additional context
Others have reported the issue here: https://github.com/Azure/AKS/issues/3530

route to CXP team

@Misterjohnson87 I am not able to reproduce this issue with CLI - 2.46.0 and attaching an acr worked fine.

Can you please share the debug logs using --debug?

@SaurabhSharma-MSFT - Are you running az aks update -g $RG -n $AKS --attach-acr $ACR as a standalone command after running the command the first time?

Hi,
We experience the same issue. azure-cli version 2.45.0 it works fine.
Starting 2.46.0 we get the same error message as described in the issue.
I notice that @SaurabhSharma-MSFT uses az aks create instead of az aks update.
Possibly only happens with the az aks update command?
Workaround is to manually define to use azure-cli version 2.45.0 till this is fixed.

@BramReijnders I have checked with az aks update and able to reproduce this issue.  I am working on it internally and get back to you.

@SaurabhSharma-MSFT - Just to confirm this issue is still present in 2.47.0

@Misterjohnson87 @SaurabhSharma-MSFT,
Just checked the issue with Azure CLI 2.47.0, for me it's fixed.
#3530#issuecomment-1501016757

@Misterjohnson87 Thanks for the confirmation. We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Use one flag to cache all third party data in one directory

This removes the individual flags for the preload list and PSL, and makes one new flag that covers the preload list, PSL, and the preload pending list.
In addition to making @lgarron and the hstspreload.org servers a lot happier, this will make it easier for people/tools that make use of pshtt to rationalize their caching strategy, and easier for the pshtt maintainers to add new third party data sources without adding new flags and approaches to caching.
Fixes #99.

Also, I should note -- this removes the older flags (--suffix-cache and preload-cache), and so people making use of those two flags will find that caching no longer functions. However, I think I am the only one making use of it! And it seemed worth clearing up flag cruft now, while the tool is still young. So I will plan to make a coordinated update on my end once a new version of pshtt` is published with this addition, assuming it's merged.

Thanks for the review, @jsf9k!
Next up is a PR letting third party cache data be passed in via variable, to support environments like Lambda where you can reuse in-memory data across containers.

Next up is a PR letting third party cache data be passed in via variable, to support environments like Lambda where you can reuse in-memory data across containers.

$XDG_CACHE_HOME, plz? :-D


dev → main

Context
This is a fork for v2, and we're doing periodic updates to main (protected) from dev (not protected) with our changes.
In this PR (for convenience)

#1

Deployed

can we test the dev environment?

Docs

do we need any docs?

@maxachis I made this so that we can keep track of the disparity between dev + main in terms of features. Please feel free to edit my main comment with PRs or other things if it helps keep things concide


Receive flows inconsistent and confusing

on main receive screen you have a QR code
but if you do the request specific amount flow you dont get a QR code at the end
we actually had the QR code at the end of the specific amount flow in the past, but now it is replaced with the generic new Transaction Confirmation screen (for both send/receive)
on main receive screen i think the blue button text is not clear enough

@sirpy
We are changing the send flow so it will surely affect the receive flow also, I'll update it accordingly when complete.

@sirpy we opened a new ticket on send and receive this ticket can be closed
see - https://app.zenhub.com/workspaces/gooddollar-5d50833888a83c6880d3e345/issues/gooddollar/gooddapp/1844


DMR merging of ROOT files parallely

Hi Heshy,
I am Simon from KIT/EKP.
As discussed in an email-thread several weeks ago I have implemented changes to validateAlignments.py that allow one to perform the merging of DMR related ROOT-Files parallely.
As I understand you are working on similar matters, I was hoping to integrate my changes into your repository.
The feature saved me up to 60% of runtime in my tests.
My code only works with lxplus-jobmode. If another jobmode is selected by the user, none of my code is executed.
To merge the ROOT-Files, a separate TkAlMerge*.sh-script is created for each alignment. It takes care of the merging of the corresponding files. Also, an Init and Final-scripts is created to perform the steps before and after the merging.
Because each of those scripts depends on different jobs being complete, a class "ParallelMergeJob" is added to handle dependencies by storing the correct bsub -w parameters for each script.
The whole feature is by default disabled. To enable it, one has to supply the --mergeOfflineParallel-option to validateAlignments.py .
Also, in my tests I realized that the plots of pvv validation were not copied to the results directory in the current version of the software. Karim provided me with a bugfix that is included in this pull request.
Best Regards,
Simon

Hi Simon,
Sorry I didn't get back to you sooner.  This is a nice development!
I would suggest making a pull request to the main CMSSW repository instead, my branch isn't going to do anything.  I'm not sure if you have experience with this, but basically the way to do it is:
cmsrel CMSSW_9_2_4
cd CMSSW_9_2_4/src
cmsenv
git cms-addpkg Alignment/OfflineValidation   #takes a long time
git checkout -b parallel-merge-dmr
git cherry-pick 7d66e34^...dfe07e3
git push my-cmssw parallel-merge-dmr

Then you can make a pull request to the official CMSSW repository.
Heshy


new Date() instance of Date should be true when using setSystemTime

Describe the bug
When using setSystemTime, Date objects will not be instances of (the now mocked) Date.
Reproduction
https://stackblitz.com/edit/vitejs-vite-uwiefu?file=index.test.js
System Info
System:
    OS: Windows 10 10.0.19045
    CPU: (8) x64 Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
    Memory: 10.69 GB / 32.00 GB

  Binaries:
    Node: 18.18.2 - C:\Program Files\nodejs\node.EXE
    npm: 10.2.4 - C:\Program Files\nodejs\npm.CMD

  Browsers:
    Edge: Spartan (44.19041.3570.0), Chromium (119.0.2151.72)
    Internet Explorer: 11.0.19041.3570

  npmPackages:
    @vitejs/plugin-react: ^4.1.1 => 4.1.1
    @vitest/coverage-v8: ^0.34.6 => 0.34.6
    @vitest/ui: ^0.34.6 => 0.34.6
    vite: 4.5.0 => 4.5.0
    vitest: ^0.34.6 => 0.34.6

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Workaround:
vi.useFakeTimers()
vi.setSystemTime('2023-11-22');
expect(new Date()).toBeInstanceOf(Date);