net: ip: Segmentation fault when select() after non-blocking connect()

Describe the bug
When non-blocking connect() is called to make a TCP connection to the server, connect() may return -1 with errno set to EINPROGRESS in the first place, and then we can use select() to wait for the socket being set to be writable which indicates connection established. If the server does not listen on the required TCP port, there are two conditions that cause Segmentation fault due to NULL pointer access.

The server responds with RST, tcp_conn is freed due to connection reset by peer.
Execution flow:
a. main thread calls net_tcp_connect() which returns -EINPROGRESS immediately due to K_NO_WAIT timeout
b. rx_q[0] thread: tcp_in() -> /* Valid RST received. */ -> tcp_conn_close() -> tcp_conn_unref() {conn->context->tcp = NULL;}
c.  main thread: zsock_select() -> zsock_poll_prepare_ctx() -> net_tcp_conn_sem_get(ctx) { this function will return ctx->tcp->connect_sem, but ctx->tcp has already been set to NULL in step b., so Segmentation fault is caused due to NULL pointer access }

The server does not respond, tcp_conn is finally freed due to retransmission timed out.
Execution flow:
a. main thread calls net_tcp_connect() which returns -EINPROGRESS immediately due to K_NO_WAIT timeout
b. tcp_work thread: tcp_send_process() -> tcp_conn_close() -> tcp_conn_unref() {conn->context->tcp = NULL;}
c.  main thread: zsock_select() -> zsock_poll_prepare_ctx() -> net_tcp_conn_sem_get(ctx) { this function will return ctx->tcp->connect_sem, but ctx->tcp has already been set to NULL in step b., so Segmentation fault is caused due to NULL pointer access }

Relative issue https://github.com/zephyrproject-rtos/zephyr/issues/63943 also caused by already freed tcp_conn.
Workaround this issue
Add the following code in zsock_poll_prepare_ctx(), and zsock_select() will return -1 with errno set to ECONNRESET when tcp_conn was freed. But if tcp_conn was freed due to retransmission timed out, it still returns -1 with errno set to ECONNRESET.

To Reproduce
Run the following code with native_posix execution.
#include <zephyr/net/socket.h>
#include <fcntl.h>

int main(void)
{
    int fd, flags, ret;
    struct sockaddr_in servaddr;
    struct in_addr inaddr;
    struct timeval tv;
    zsock_fd_set wfds;

    fd = zsock_socket(AF_INET, SOCK_STREAM, 0);

    flags = fcntl(fd, F_GETFL, 0);
    fcntl(fd, F_SETFL, flags | O_NONBLOCK);

    inet_pton(AF_INET, "<IP_ADDRESS>", (void *)&inaddr);

    servaddr.sin_family = AF_INET;
    servaddr.sin_addr = inaddr;
    servaddr.sin_port = htons(8088);

    ret = zsock_connect(fd, (const struct sockaddr *)&servaddr, sizeof(servaddr));

    if (ret == 0) {
        printk("connection established\n");
        zsock_close(fd);
    } else {
        printk("zsock_connect()=%d errno=%d %s\n", ret, errno, strerror(errno));
        /* wait for connection established */
        while (1) {
            tv.tv_sec = 5;
            tv.tv_usec = 0;
            FD_ZERO(&wfds);
            FD_SET(fd, &wfds);
            /* connection established if socket is writable */
            ret = zsock_select(fd + 1,  NULL, &wfds, NULL, &tv);
            if (ret == 0) {
                printk("zsock_select()=0 timeout\n");
            } else if (ret < 0) {
                printk("zsock_select()=%d errno=%d %s\n", ret, errno, strerror(errno));
                break;
            } else {
                printk("connection established\n");
                zsock_close(fd);
                break;
            }
        }
    }

    return 0;
}

Expected behavior
Segmentation fault does not occur and select() returns -1 when TCP connection fails.
Logs and console output
root@debian:/zephyr/tcp_connect# valgrind build/zephyr/zephyr.exe
==477789== Memcheck, a memory error detector
==477789== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==477789== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==477789== Command: build/zephyr/zephyr.exe
==477789==
WARNING: Using a test - not safe - entropy source

[00:00:00.110,000] <inf> net_config: IPv6 address: 2001:db8::1
[00:00:00.110,000] <inf> net_config: IPv6 address: 2001:db8::1
zsock_connect()=-1 errno=115 Operation now in progress
zsock_select()=0 timeout
uart:~$ ==477789== Thread 3:
==477789== Invalid read of size 4
==477789==    at 0x138A6F: is_condition_met (poll.c:67)
==477789==    by 0x138A6F: register_events (poll.c:246)
==477789==    by 0x138C71: z_impl_k_poll (poll.c:304)
==477789==    by 0x115E73: k_poll (kernel.h:1460)
==477789==    by 0x115E73: zsock_poll_internal (sockets.c:1789)
==477789==    by 0x1164EB: z_impl_zsock_select (sockets_select.c:141)
==477789==    by 0x111CC8: zsock_select (socket_select.h:39)
==477789==    by 0x111CC8: _posix_zephyr_main (main.c:37)
==477789==    by 0x135F00: bg_thread_main (init.c:377)
==477789==    by 0x11235F: z_thread_entry (thread_entry.c:48)
==477789==    by 0x11AD99: posix_arch_thread_entry (thread.c:56)
==477789==    by 0x11AFA9: posix_thread_starter (posix_core.c:293)
==477789==    by 0x496E0B3: start_thread (pthread_create.c:477)
==477789==    by 0x4A88385: clone (clone.S:108)
==477789==  Address 0x44 is not stack'd, malloc'd or (recently) free'd
==477789==
==477789==
==477789== Process terminating with default action of signal 11 (SIGSEGV)
==477789==  Access not within mapped region at address 0x44
==477789==    at 0x138A6F: is_condition_met (poll.c:67)
==477789==    by 0x138A6F: register_events (poll.c:246)
==477789==    by 0x138C71: z_impl_k_poll (poll.c:304)
==477789==    by 0x115E73: k_poll (kernel.h:1460)
==477789==    by 0x115E73: zsock_poll_internal (sockets.c:1789)
==477789==    by 0x1164EB: z_impl_zsock_select (sockets_select.c:141)
==477789==    by 0x111CC8: zsock_select (socket_select.h:39)
==477789==    by 0x111CC8: _posix_zephyr_main (main.c:37)
==477789==    by 0x135F00: bg_thread_main (init.c:377)
==477789==    by 0x11235F: z_thread_entry (thread_entry.c:48)
==477789==    by 0x11AD99: posix_arch_thread_entry (thread.c:56)
==477789==    by 0x11AFA9: posix_thread_starter (posix_core.c:293)
==477789==    by 0x496E0B3: start_thread (pthread_create.c:477)
==477789==    by 0x4A88385: clone (clone.S:108)
==477789==  If you believe this happened as a result of a stack
==477789==  overflow in your program's main thread (unlikely but
==477789==  possible), you can try to increase the size of the
==477789==  main thread stack using the --main-stacksize= flag.
==477789==  The main thread stack size used in this run was 8388608.
==477789==
==477789== HEAP SUMMARY:
==477789==     in use at exit: 3,008 bytes in 11 blocks
==477789==   total heap usage: 17 allocs, 6 frees, 5,074 bytes allocated
==477789==
==477789== LEAK SUMMARY:
==477789==    definitely lost: 0 bytes in 0 blocks
==477789==    indirectly lost: 0 bytes in 0 blocks
==477789==      possibly lost: 1,088 bytes in 8 blocks
==477789==    still reachable: 1,920 bytes in 3 blocks
==477789==         suppressed: 0 bytes in 0 blocks
==477789== Rerun with --leak-check=full to see details of leaked memory
==477789==
==477789== For lists of detected and suppressed errors, rerun with: -s
==477789== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault

Environment

OS: Linux
Toolchain: Zephyr SDK
Commit: https://github.com/zephyrproject-rtos/zephyr/commit/433a85e7bf32ffc77ba194bb903bcca84c44c047

This I could replicate, thanks for the good example program.

@chih-hung-yu thanks for the report. Your workaround is working fine so I used it in the fix. Also added unit tests in order to check the return codes are correct.

@chih-hung-yu Robert and I have been pondering how to fix this and the current proposal can be found at #63984. Could you try it and see if it fixes your issue. Note that the code does not return ECONNRESET to the application and you would need to check the error condition from either select() exceptfs set or in poll() POLLERR which is returned to the caller. See for example the unit test in that PR how user could detect the connection closure.
The idea of this proposal is that the ctx->tcp pointer is valid during the socket() -> close() calls, so there should never be a null tcp pointer and the null access issue should be handled properly.

I modified my sample code to select() exceptfds and select() did return with FD_ISSET(fd, &efds) immediately when RST is received or when connection timeout. Though for the application it is not a portable method to use exceptfds to detect connection failure, but Zephyr does set ZSOCK_POLLERR event to signal socket error when sock_is_error(ctx), and in this way we do not know the error reason.
According to POSIX, 'exceptfds' is used to signal the availability of out-of-band (OOB) data, which is not supported by Zephyr currently.
http://man.he.net/man2/select_tut
exceptfds
              This set is watched for "exceptional conditions".  In  practice,
              only  one such exceptional condition is common: the availability
              of out-of-band (OOB) data for reading from a  TCP  socket.

I have to agree with you that we should behave more like Linux with the select() call.


Make ActionLimits test more reliable

An attempt to improve stability of Action limits should be aborted when exceeding its memory limits test
Description
As seen in #3246 the memory limit test fails intermittently with high rate. For now there is no deterministic way to reproduce the test failure. I think. it mostly happens when system is low on memory then directly allocating a big buffer fails before it can lead to OOM.
This PR tries to improve that by consuming memory by gradually increasing an array. So far in few runs done this test at least does not seem to fail
Related issue and scope

[ ] I opened an issue to propose and discuss this change (#3246 )

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[ ] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[ ] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[ ] Documentation

Types of changes

[ ] Bug fix (generally a non-breaking change which closes an issue).
[ ] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[ ] I signed an Apache CLA.
[ ] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[ ] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

This looks much more thorough approach!. Updated the PR to use this

@sven-lange-last  Looks like this approach caused problem with 2 other tests. See https://scans.gradle.com/s/nzallz7znlnkc/tests/xaqugzlgs2zxa-rsbgpl76jwvy2. We can either use a dedicated script for OOM case based on this approach or use the earlier array based approach
Thoughts?

@chetanmeh I was playing around with different memory limits and memory requests. My suspicion is that the pages array gets too large if a lot of memory pages have to be allocated.
Look at following example (memory limit for this run was 512 MiB) - please note that the rss output from below seems to be inaccurate:
[
  "2018-12-04T15:02:01.184725065Z stdout: helloEatMemory: memory 450MB",
  "2018-12-04T15:02:01.24936757Z  stdout: helloEatMemory: memoryInB=471859200, memoryInPages=115200",
  "2018-12-04T15:02:01.750035755Z stdout: helloEatMemory: pages.length=115200",
  "2018-12-04T15:02:01.750560738Z stdout: helloEatMemory: completed allocating memory",
  "2018-12-04T15:02:01.752678064Z stdout: { rss: 547438592,",
  "2018-12-04T15:02:01.752698276Z stdout: heapTotal: 59875328,",
  "2018-12-04T15:02:01.752701533Z stdout: heapUsed: 32053224,",
  "2018-12-04T15:02:01.752704112Z stdout: external: 471876284 }"
]

I think that we need a different approach to reference the allocated objects to prevent them from being garbage collected or slightly increase the size of blocks.

Does it help to use a different language/a binary to exhaust the memory?

Or may be we revert to array push based approach which seemed to pass for now in few runs

I'm currently working on a variant that uses an upper bound for the number allocations - implying that there is also an upper bound for the array storing the references to all allocated blocks. With this approach, the size of the array has less impact on the overall memory consumption.

@chetanmeh please have a look at the following approach and let me know what you think:
// Licensed to the Apache Software Foundation (ASF) under one or more contributor
// license agreements; and to You under the Apache License, Version 2.0.

'use strict';

// Usually, Linux systems have a page size of 4096 byte
// The actual value can be obtained with `getconf PAGESIZE`
const pageSizeInB = 4096;

// This array will be used to store all allocated blocks
// such that they won't be garbage collected
let blocks = [];

// Allocates a byte array that has page size
function allocateMemoryBlock(sizeInB) {
    return new Uint8Array(sizeInB);
}

// Returns a random number between 0 (inclusive) and
// the specified value maxExclusive (exclusive)
function randomUnsigned(maxExclusive) {
    return Math.floor(Math.random() * maxExclusive);
}

// Fills the first 4 bytes of the passed byte array with random
// numbers
function fillMemoryPage(byteArray) {
    for (let i = 0; (i < 4) && (i < pageSizeInB); i++) {
        byteArray[i] = randomUnsigned(256);
    }
}

// Consumes the specified amount of physical memory
// * The memory is allocated in smaller blocks instead of
//   allocating one large block of memory to prevent
//   virtual OOM
// * Size of allocated blocks is a multiple of page size
// * The number of allocated blocks has an upper bound
//   because a reference to each block is stored in an
//   array. If the number of blocks gets too high, the
//   resulting array grows so large that its contribution
//   to memory consumption causes trouble.
//   For this reason, the block size is adjusted to
//   limit the number of blocks. The resulting allocation
//   granularity can cause a slight over-consumption of
//   memory. That's why the upper limit must be selected
//   carefully.
// * Fill randomly to prevent memory deduplication
function eat(memoryInMiB) {
    const memoryInB = memoryInMiB * 1024 * 1024;
    const memoryInPages = Math.ceil(memoryInB / pageSizeInB);
    console.log('helloEatMemory: memoryInB=' + memoryInB + ', memoryInPages='+memoryInPages);

    let blockSizeInB = pageSizeInB;
    let memoryInBlocks = memoryInPages;
    let pagesPerBlock = 1;
    const maxBlocks = 8192;
    if(memoryInPages > maxBlocks) {
        pagesPerBlock = Math.ceil(memoryInB / (maxBlocks * pageSizeInB));
        blockSizeInB = pagesPerBlock * pageSizeInB;
        memoryInBlocks = Math.ceil(memoryInB / blockSizeInB);
    }
    console.log('helloEatMemory: pagesPerBlock=' + pagesPerBlock + ', blockSizeInB=' + blockSizeInB + ', memoryInBlocks='+memoryInBlocks);

    for(let b = 0; b < memoryInBlocks; b++) {
        let byteArray = allocateMemoryBlock(blockSizeInB);
        fillMemoryPage(byteArray);
        blocks.push(byteArray);
    }
    console.log('helloEatMemory: blocks.length=' + blocks.length);
}

function main(msg) {
    console.log('helloEatMemory: memory ' + msg.payload + 'MB');
    global.gc();
    eat(msg.payload);

    console.log('helloEatMemory: completed allocating memory');
    console.log(process.memoryUsage());

    // This Node.js code is invoked as Apache OW action
    // We need to explicitly clear the array such that all
    // allocated memory gets garbage collected and
    // we have a "fresh" instance on next invocation
    // Clean up after ourselves such that the warm container
    // does not keep memory
    blocks = [];
    global.gc();

    return {msg: 'OK, buffer of size ' + msg.payload + ' MB has been filled.'};
}

I checked with a 128 MiB, a 500 MiB and a 512 MiB invocation with 512 MiB limit. These are the results / activation logs:
[
  "2018-12-05T12:55:52.049283152Z stdout: helloEatMemory: memory 128MB",
  "2018-12-05T12:55:52.059526736Z stdout: helloEatMemory: memoryInB=134217728, memoryInPages=32768",
  "2018-12-05T12:55:52.059543917Z stdout: helloEatMemory: pagesPerBlock=4, blockSizeInB=16384, memoryInBlocks=8192",
  "2018-12-05T12:55:52.135555278Z stdout: helloEatMemory: blocks.length=8192",
  "2018-12-05T12:55:52.135598293Z stdout: helloEatMemory: completed allocating memory",
  "2018-12-05T12:55:52.139306938Z stdout: { rss: 164151296,",
  "2018-12-05T12:55:52.139319089Z stdout: heapTotal: 21004288,",
  "2018-12-05T12:55:52.139321946Z stdout: heapUsed: 10991608,",
  "2018-12-05T12:55:52.139324825Z stdout: external: 134391414 }"
]

[
  "2018-12-05T12:56:33.214296492Z stdout: helloEatMemory: memory 500MB",
  "2018-12-05T12:56:33.233272466Z stdout: helloEatMemory: memoryInB=524288000, memoryInPages=128000",
  "2018-12-05T12:56:33.233292481Z stdout: helloEatMemory: pagesPerBlock=16, blockSizeInB=65536, memoryInBlocks=8000",
  "2018-12-05T12:56:33.438287871Z stdout: helloEatMemory: blocks.length=8000",
  "2018-12-05T12:56:33.438336658Z stdout: helloEatMemory: completed allocating memory",
  "2018-12-05T12:56:33.440735531Z stdout: { rss: 447741952,",
  "2018-12-05T12:56:33.440751814Z stdout: heapTotal: 13664256,",
  "2018-12-05T12:56:33.440757557Z stdout: heapUsed: 9640480,",
  "2018-12-05T12:56:33.440761907Z stdout: external: 524305084 }"
]

Results:
{
  "error": "The action exhausted its memory and was aborted."
}
Logs:
[
  "2018-12-05T12:57:17.06811829Z  stdout: helloEatMemory: memory 512MB",
  "2018-12-05T12:57:17.079922003Z stdout: helloEatMemory: memoryInB=536870912, memoryInPages=131072",
  "2018-12-05T12:57:17.07995169Z  stdout: helloEatMemory: pagesPerBlock=16, blockSizeInB=65536, memoryInBlocks=8192",
  "2018-12-05T12:57:17.267024391Z stderr: Killed",
  "2018-12-05T12:57:19.492Z       stderr: There was an issue while collecting your logs. Data might be missing."
]

I also checked with a 128 MiB invocation with 128 MiB limit. These are the results / activation logs:
Results:
{
  "error": "The action exhausted its memory and was aborted."
}
Logs:
[
  "2018-12-05T12:58:43.993580836Z stdout: helloEatMemory: memory 128MB",
  "2018-12-05T12:58:44.00138955Z  stdout: helloEatMemory: memoryInB=134217728, memoryInPages=32768",
  "2018-12-05T12:58:44.001399329Z stdout: helloEatMemory: pagesPerBlock=4, blockSizeInB=16384, memoryInBlocks=8192",
  "2018-12-05T12:58:44.089113743Z stderr: Killed",
  "2018-12-05T12:58:46.343Z       stderr: There was an issue while collecting your logs. Data might be missing."
]

@chetanmeh thanks for updating and sorry for the strange approach with this PR. Looking back, I should have started pushing commits to this branch instead of providing code snippets as comments.
@chetanmeh @rabbah what do you think? Can we merge this PR?

LGTM


Added the possibility to use a mongo URI instead of having to use a password only.

Previously, if I wanted to connect to a different database than the one in the source code, I had to actually go ahead and change the source code, now I can just edit an environment variable.
Also done some minor refactoring.

Don't forget to add a catch after the then, something like;
mongoose.connect("<mongoDB_uri_stuff>", {}).then(() => { code and whatnot.. }).catch((error) => {
 logger.error(error);
});

So it can log issues related to mongoose not being able to connect or whatever.


Add new test cases for rounded intersections

So that we force arc-line segment and arc-arc connections on intersections.

Subsumed by #229 and #230


Remove android:name for RN 0.29 support

Status
READY
Description

Problem: React Native 0.29+ applications require android:name in the manifest. If this library also specifices android:name, a manifest merge error occurs.
Solution: Remove android:name from the manifest. Multidex is still enabled in build.gradle

git fetch --all
git checkout develop
./gradlew connectedCheck

@boundlessgeo/spatial-connect

👍


Attempt to make the unsubscribe event work

To test this, run the following:

bin/main.php
Listen to active subscriptions (using Listen subscriptions button)
Subscribe (using Subscribe button)
Unsubscribe
The subscription should have appear and disappear

Notice: by default, the tool is using HTTP Header implementation that is not supported in the network tab of the browser, so you may want to change to "cookie authentication" before any kind of test.

Fixed by switching to amphp v3


Realm: no support for non-affine pieces yet

@mariodirenzo was hitting this assertion, which seems to be somewhere in Realm DMA code.
It looks suspiciously similar to #381, but I don't know if it's related at all.
113 prometeo.exec: /home/ctrsp-2018/mariodr/legion/runtime/realm/transfer/transfer.cc:1237: size_t Realm::TransferIteratorIndexSpace<N, T>::step(size_t, Realm::TransferIterator::AddressInfo&, unsigned int, bool) [with int N = 2; T = long long int; size_t = long unsigned int]: Assertion `0 && "no support for non-affine pieces yet"' failed.
114 Signal 6 received by process 15984 (thread 2b1c67b07700) at: stack trace: 12 frames
115   [0] = /usr/lib64/libc.so.6(+0x35270) [0x2b1c5093f270]
116   [1] = /usr/lib64/libc.so.6(gsignal+0x37) [0x2b1c5093f1f7]
117   [2] = /usr/lib64/libc.so.6(abort+0x148) [0x2b1c509408e8]
118   [3] = /usr/lib64/libc.so.6(+0x2e266) [0x2b1c50938266]
119   [4] = /usr/lib64/libc.so.6(+0x2e312) [0x2b1c50938312]
120   [5] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(Realm::TransferIteratorIndexSpace<2, long lo    ng>::step(unsigned long, Realm::TransferIterator::AddressInfo&, unsigned int, bool)+0x715) [0x2b1c4e80726f]
121   [6] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(Realm::ReduceRequest::perform_dma()+0x488) [    0x2b1c4e851f74]
122   [7] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(Realm::DmaRequestQueue::worker_thread_loop()    +0xaf) [0x2b1c4e8552ad]
123   [8] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(void Realm::Thread::thread_entry_wrapper<Rea    lm::DmaRequestQueue, &Realm::DmaRequestQueue::worker_thread_loop>(void*)+0x18) [0x2b1c4e85ba8c]
124   [9] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(Realm::KernelThread::pthread_entry(void*)+0x    1af) [0x2b1c4e86fa61]
125   [10] = /usr/lib64/libpthread.so.0(+0x7e25) [0x2b1c50edce25]
126   [11] = /usr/lib64/libc.so.6(clone+0x6d) [0x2b1c50a0234d]
127 Signal 6 received by process 15984 (thread 2b1c67d08700) at: stack trace: 12 frames
128   [0] = /usr/lib64/libc.so.6(+0x35270) [0x2b1c5093f270]
129   [1] = /usr/lib64/libc.so.6(gsignal+0x37) [0x2b1c5093f1f7]
130   [2] = /usr/lib64/libc.so.6(abort+0x148) [0x2b1c509408e8]
131   [3] = /usr/lib64/libc.so.6(+0x2e266) [0x2b1c50938266]
132   [4] = /usr/lib64/libc.so.6(+0x2e312) [0x2b1c50938312]
133   [5] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(Realm::TransferIteratorIndexSpace<2, long lo    ng>::step(unsigned long, Realm::TransferIterator::AddressInfo&, unsigned int, bool)+0x715) [0x2b1c4e80726f]
134   [6] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(Realm::ReduceRequest::perform_dma()+0x488) [    0x2b1c4e851f74]
135   [7] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(Realm::DmaRequestQueue::worker_thread_loop()    +0xaf) [0x2b1c4e8552ad]
136   [8] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(void Realm::Thread::thread_entry_wrapper<Rea    lm::DmaRequestQueue, &Realm::DmaRequestQueue::worker_thread_loop>(void*)+0x18) [0x2b1c4e85ba8c]
137   [9] = /home/ctrsp-2018/mariodr/legion/bindings/regent/libregent.so(Realm::KernelThread::pthread_entry(void*)+0x    1af) [0x2b1c4e86fa61]
138   [10] = /usr/lib64/libpthread.so.0(+0x7e25) [0x2b1c50edce25]
139   [11] = /usr/lib64/libc.so.6(clone+0x6d) [0x2b1c50a0234d]

@mariodirenzo Do you know if you're doing any layout transformations? (CC: @manopapad @magnatelee)

I'm not sure. What do you mean by layout transformations?
You can find attached a reproducer of what I am doing in my solver. I have tested this reproducer on a single core and it works.
reproducer.tar.gz

Could you get into a debugger and print layout_piece?

Can't find that command or symbol in a gdb attached to the solver after the assertion.

@jiazhihao Can you help with this until @streichler gets back from vacation?

@mariodirenzo If you're attaching to a process frozen with REALM_FREEZE_ON_ERROR=1 then run the threads command to list threads. The thread you want will be inside nanosleep. Switch to that thread with thread N where N is the thread number.
Then run bt to get the backtrace on that thread and figure out which frame number corresponds to Realm::TransferIteratorIndexSpace<N, T>::step. Run frame M where M is the frame number. At that point you should be able to do p/x layout_piece.
The output will be more readable if you add set print static-members off to ~/.gdbinit before you do this.

The output to p/x layout_piece is 0x2b178000f840

Sorry, what about p/x *layout_piece?

$3 = (Realm::HDF5LayoutPiece<2, long long>) {
  <Realm::InstanceLayoutPiece<2, long long>> = {
    _vptr.InstanceLayoutPiece = 0x2b17326f6938 <vtable for Realm::HDF5LayoutPiece<2, long long>+16>,
    layout_type = 0x2,
    bounds = {
      lo = {
        x = 0x0,
        y = 0x0
      },
      hi = {
        x = 0x1f,
        y = 0x0
      }
    }
  },
  members of Realm::HDF5LayoutPiece<2, long long>:
  filename = {
    _M_dataplus = {
      <std::allocator<char>> = {
        <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
      members of std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider:
      _M_p = 0x2b178000f8d0
    },
    _M_string_length = 0x36,
    {
      _M_local_buf = {0x36, 0x0 <repeats 15 times>},
      _M_allocated_capacity = 0x36
    }
  },
  dsetname = {
    _M_dataplus = {
      <std::allocator<char>> = {
        <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
      members of std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider:
      _M_p = 0x2b178000f8a0
    },
    _M_string_length = 0xd,
    {
      _M_local_buf = {0x43, 0x6f, 0x6e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x61, 0x76, 0x67, 0x0, 0x0, 0x0},
      _M_allocated_capacity = 0x65767265736e6f43
    }
  },
  offset = {
    x = 0x0,
    y = 0x0
  }
}

Do you have any update on this issue?

I think we need @jiazhihao to look at this; we're doing something with an HDF5 instance but more than I'm not in a position to say.
In the mean time, a possible workaround might be to disable HDF5 support in the application code, so that you're not trying to use an HDF5 instance.

Actually that HDF file is the main outcome of the calculation that I need to perform.
Disabling it would defeat the purpose of the calculation.
Do you know roughly when you will be able to look at this issue?

I should be able to take a look at this in the next day or two.

Thanks. Please, let me know if you need additional output from gdb.

@mariodirenzo, I'm not able to get this to reproduce with the provided code.  Can you confirm which commit you're building against and show the exact command lines used to build regent and then run the test case?

The thing is that that reproducer in the comment from 10 days ago works on a single core, producing the correct output.
When I attempt the same process using the same hdf_helper in the full scale application, I get the reported error.
Right now, I am using the version of the repository in the branch "nopaint" built using the command:
DEBUG=1 USE_CUDA=1 USE_OPENMP=1 USE_GASNET=1 USE_HDF=1 scripts/setup_env.py --llvm-version 38

Ah, in that case, can you run the failing version with -level inst=1,dma=2,new_dma=2 -logfile dma.log and attach the dma.log file that is produced?

This is the log file that I get:
dma.log

@mariodirenzo I think I know what's wrong (reduction copies to hdf5 instances), but it's not a quick fix.  As a potential workaround, can you try changing the tasks that have reduction privileges (e.g. AddStats in Example15.rg) to use read/write privileges instead?  This may impact your ability to parallelize some loops, and there's some chance it'll cause a different fatal error, but let's give it a try and see what happens.

@streichler I get the following error:
Example15.rg:131: loop optimization failed: argument 2 interferes with itself
            AddStats(pr[c], rakes[int2d({0, rake})], 1.0/10)

@mariodirenzo Like @streichler said, it's possible it will cause the code to serialize. In this case, it would mean that you'd be unable to use an index launch. But if you're just interested in getting the code to work, you can comment out __demand(__parallel) and this error should go away.

The hdf output works after removing the __demand(__parallel) though there is a sensible slowdown when I use the code with a few hundreds of millions of points in the region to be sampled.
When do you think that this issue will be fixed?

The ETA is unknown, as we'd really like to fix this and some related issues with a more general solution.
Can we try another workaround?  Try going back to the reduction privileges and the parallel loop, but add a dummy task after the double-nested loop that calls AddStats that read/writes the s region (or an index launch that read/writes the various ps[*] subregions) before the HDF dump task.

I've added a call this task
__demand(__inline)
task DummyAverages(Averages : region(ispace(int2d), Averages_columns))
where
    reads writes(Averages)
do
    -- Nothing
    -- It is just to avoid the bug of HDF libraries with parallel reduction
end

before the call to the dump task but it did not work. Could it be related to the __demand(__inline)?
I would try directly but compiling the code takes hours.

Yes, the __demand(__inline) needs to go - it's allowing Regent to optimize this task out again.

Now it works and performs much better than the read write version.
Should we keep this issue open till the new implementation will be available?
In this way, I'll know when I can remove the dummy task.
Thanks for your help.

Yes, we'll keep this open, and I've edited the title so I'll remember what the actual issue is.  :)


Add support for customizing visibility of other menu items

It'd be nice if I could move some of the extended menu items into the main menu:

Added Topics and Circles in https://github.com/typefully/minimal-twitter/commit/d77f045e54f09ce444b3c8df059c6d1958ede4ed, don't have Community Notes on my Twitter


[Question] Can I cache some api call with inner params ?

Hi I will explain my question with simple example:
  @Cacheable({
    maxAge: 60000,
    maxCacheCount: 10,
    cacheBusterObserver: entityBustCache$.asObservable()
  })
  list(payload: any = {}): Observable<any> {
    return this._http.post('${environment.baseUrl}/some/api', { ...payload, inner_param: this._someService.getObservable().value });
  }

So my question is how can I cache some endpoints with inner params that are not provided by method call? I have tried to cache internal closure with all params but without success
  list(payload: any = {}): Observable<any> {
    payload = { inner_param: this._someService.getObservable().value, ...payload };

    @Cacheable({
      maxAge: 60000,
      maxCacheCount: 10,
      cacheBusterObserver: entityBustCache$.asObservable()
    })
    const apiCall = (p) => this._http.post('${environment.baseUrl}/some/api', p)

    return apiCall(payload);
  }

Or I have to move all params to method definition in in my case:
list(payload: any = {}, inner_param): Observable<any> {
  // code
}

Best regards and thanks for this awesome library !
P.S I think that decorators can only decorates methods/properties of class, so maybe we could add an additional param to Cacheable decorator something like this:
@Cacheable({
  parameters: {}
})

And merge this option before this line https://github.com/angelnikolov/ngx-cacheable/blob/master/cacheable.decorator.ts#L43?
Do you think it could work?
RE P.S
Seems that something like this is working properly:
  list(payload: any = {}): Observable<any> {
    payload = { ...payload, inner_param: this._someService.getObservable().value };
    return this._listEntity(payload);
  }

  @Cacheable({
    maxAge: 60000,
    maxCacheCount: 10,
    cacheBusterObserver: BustCache$.asObservable()
  })
  private _listEntity(payload: any = {}): Observable<any> {
    return this._http.post(`${environment.baseUrl}/some/api`, payload);
  }

Yes, either that, or provide a custom ICacheRequestResolver to the decorator which might have access to the extra parameter you need. But I still think that your idea in the end is better :)

Yeah I think too that that the last one is the best option.
I have another question can I use multiple @CacheBuster on the same method?Or i have to use one only i then bust some other caches in actions where that method was used ?

You can decorate the method with as many decorators as you want, but I would rather suggest that you combine two cache buster subjects into one stream and provide that to your @Cacheable-decorated methods.

Ok I should merge it by merge operator or concat ? The cache shoulds bust as soon as one of them emit new value

Hi @angelnikolov can you show an example how to merge to subject for CacheBuster ?

@marcio199226 cacheBusterObserver: merge(cacheBusterSubject1, cacheBusterSubject2)

Thx I will try it, vs code highlight it as error so i thought that merging is not enough

It must be cacheBusterObserver: merge(cacheBusterSubject1.asObservable(), cacheBusterSubject2.asObservable()), sorry :)


Fix assert errors on macOS

This fixes issues on macOS: https://github.com/openxla/iree/actions/runs/4503384235/jobs/7926505290#step:6:6396

Actually the code now changed; so this is not needed anymore.


[Task] Add Batch Enable/Disable for Selectors and Rules

Currently supports enabling or disabling individual data entries, now needs to add support for batch operations.

The API is reusable and was initially designed to support batch operations.

Enable or Disable 'Selector'

shenyu-dashboard/src/routes/Plugin/Common/index.js

//dispatch type
type: "common/enableSelector",
//dispatch body
payload: {
  list,     //id list: ['XXX', 'YYY']
  enabled,  //target status: true/enable, false/disable
},

Enable or Disable 'Rule'

shenyu-dashboard/src/routes/Plugin/Common/index.js

//dispatch type
type: "common/enableRule",
//dispatch body
payload: {
  list,     //id list: ['XXX', 'YYY']
  enabled,  //target status: true/enable, false/disable
},

assign me


Rename folders

Rename web to public. If we do this we can clone the repo into Local By Flywheels app folder and everything will work without doing all the post install script stuff.
Rename the app folder inside web to content. We have used content for years. Not sure why we have called in app here?

We can make this change as long as we make sure to upgrade the version to a major so it does not break older projects


Volunteer Certificate - testing popup window still in code

if what file can I find that?

@astar26 I think this is solved by #37, before I am closing the issue let's talk about that

Solved by #53


Opprette dct:hasVersion

#52
"Range: dcat:Dataset
This property refers to a related Dataset that is a version, edition, or adaptation of the described Dataset."

Gjelder versjon 1.1


Overwatch logo appears blurry - lets use this SVG

I think the Overwatch logo looks slightly blurry. I found an SVG that I think can work:

I can email this to you as well.
Screenshots

I fixed it a long time ago


Failed to resolve '@ledgerhq/domain-service/signers/index'Failed to resolve '@ledgerhq/domain-service/signers/index'[Bug]:

Impacted Library name
@ledgerhq/hw-app-eth
Impacted Library version
6.34.1
Describe the bug
Im trying to connect legder with my web app but i have a problem building example with eth lib. I do it with btc  lib and all works well but not with eth. First i see that problem https://github.com/LedgerHQ/ledger-live/issues/4062 and reading it i change library version from latest to 6.34.1 and now i have this issue:
'@ledgerhq/domain-service/signers/index' from<EMAIL_ADDRESS>Expected behavior
I expect solution building well.
Additional context
No response

Can someone help me or just give me a simple code with ETH wallet integration?
Thank you so much


Show line, column offsets in human 1-based instead of LogicalPosition 0-based

Fixes #1456
Test plan
Tested manually:

Enable edits with CODY_JETBRAINS_FEATURES=cody.feature.inline-edits=true
Place the cursor in a file, note line:col position in status bar
Right click, Cody, Edit Code
Check that the location in the dialog reflects the cursor position in the status bar

It would be nice if the difference between 0-based and 1-based indexes were somehow expressed through the type system...


  See Google drive to visualize the training process.
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/5872edbf-f87f-4dfe-9f71-f3941b84b8d7
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/17ce275c-26bc-482e-ab61-a61f442de458

"An astronaut riding a horse".
performance: 15 minutes for geometry modeling and 13 minutes for appearance modeling on 8 3090 GPUs
resolution: 128
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/bb82b09e-e82c-41be-a2f9-747ef29395df
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/f9ba4178-8e60-40f5-b70d-c802e0f0418c
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/d4cebfb1-76de-4e41-86c1-4ea1fb59f990

Hi, could you also provide model results  for downloading (obj file, or other format)?

Hi, @akturtle ! No problem.

Hi, @akturtle ! No problem. But there may only be geometric parts, as UV padding for appearance requires some additional time using blender.

Thanks for your great work. I cannot reproduce the same results for I have only 4 GPUs and I met the Jesus multi-head problems. Could you release the generated ckpts for the gallery such as the trained weight of  mlptexture?

@colorful-liyu Which config file did you use and what text did you use? I have been preparing for my final exam recently, so I may not have time to run the code.

@colorful-liyu Which config file did you use and what text did you use? I have been preparing for my final exam recently, so some requirements will only be realized after I finish the exam.

Specifically, the geometry generation results of bama_head and oldman always have multi-face or three ears, while the generated elephant has separate ivory. And the dog reading newspapers may have more than four legs. The appearance generation looks nice. So any release about .obj files especially ckpts will be helpful.

Hi @ARuiChen,
Great work! Could you please help answer a quick question? What's the average speedup you see in 8GPU vs 1GPU? Thank you so much!

"A high heel made of gold".
performance: 7 minutes for geometry modeling and 5 minutes for appearance modeling on 8 A100 GPUs
resolution: 256
zero_shot generation
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/a5419bec-bb2d-481b-a245-31ada800b1ae

"A DSLR photo of hamburger".
performance: 7 minutes for geometry modeling and 12 minutes for appearance modeling on 1 A100 GPUs
DMTet resolution: 256
zero_shot generation
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/d12c01b0-d7c6-4de6-ac7b-b5121547f491
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/42c5217c-12f0-498e-89f8-3ea1c6867daa

@colorful-liyu  When you meet multiple faces, removing the annotation here  and rotating the initialized shape with some angles can greatly alleviate janus-problem

"a full body photo of a girl wearing a mecha"
performance: 11 minutes for geometry modeling and 8 minutes for appearance modeling on 8 A100 GPUs
DMTet resolution: 256
user-guided generation
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/e3e8bb82-6be0-42d0-9da3-1e59664354dd
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/856c12bf-f100-47fc-a22c-80f123bd0a6d

"Einstein's head with high detail hair"
"a head of Stormtrooper"
performance: 5 minutes for geometry modeling on 8 A100 GPUs (4 GPUs or 1 GPU should work)
I will update more geometric results about human head today.
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/1464f9b7-ac56-4dda-9478-06b4f95bfdc4
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/5bd8aaf7-c46c-4117-94c6-f9ec9f2cad37

"a head of I am Groot"
"a portrait of Napoleon Bonaparte"
"a head of Naruto Uzumaki"
"a portrait of Doctor Strange"
"a portrait of Batman"
"a head of Terracotta Army"
"a portrait of Salvador Dali"
performance: (very stable) 5 minutes for geometry modeling on 8 A100 GPUs (4 GPUs should work)
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/0a062736-4854-4aa0-90a8-c4c762310953
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/5caf315e-3cea-45e9-826d-8fa457798c23
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/171f5099-f079-445f-ac6f-3c8ef998b2b6
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/fbeaf6cc-2fe0-4e52-83f4-557911803df9
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/60b552bd-cd3f-4964-b220-010a327e979b
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/ca26706c-09d5-4171-9161-eabd93ab7f12
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/4eddf039-9991-4149-8296-a622d9eda224

Use the dog_geometry_user_guided.json file.
A strange phenomenon for your reference: when I set "add_directional_text= false", the user-guided generation can grow a phone from the dog's hand; On the contrary, when I set "add_directional_text= true", the phone actually won't grow out.
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/e59b1176-7c48-4410-b57f-c102ac3ecffa
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/0e7bcc3a-8f28-4a11-9780-37b7626d6a80

"a lionfish"
performance: 11 minutes for geometry modeling and 8 minutes for appearance modeling on 8 A100 GPUs
DMTet resolution: 128
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/d8eca8be-7f4b-465d-8417-54851833c29f
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/4ae4ca26-7fae-4249-b975-f6cd654bdf9c
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/c9fabdb4-8123-4984-bde5-f6fe0ddf293b
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/a5d6329d-c6c4-47dd-8e72-05f9c9074ba8

"A squirrel-octopus hybrid"
performance: (very stable) 8 minutes for geometry modeling and 8 minutes for appearance modeling on 8 A100 GPUs
DMTet resolution: 256
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/7397544d-e7c5-4cf6-8535-f47e4fb75883
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/05c230c4-f202-432a-861d-a6051a9eecce

"An astronaut is riding a horse".
performance: 12 minutes for geometry modeling and 10 minutes for appearance modeling on 8 A100 GPUs
resolution: 256
See Google Drive to visualize the training process.
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/2d0d9932-6962-450b-af16-9bd4260e1f84
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/644b7b0b-2e9b-4aed-b718-a9e12510a162

"A silver candelabra sitting on a red velvet tablecloth, only one candle is lit".
performance: 10 minutes for geometry modeling and 9 minutes for appearance modeling on 8 A100 GPUs
resolution: 256
See Google Drive to visualize the training process.
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/bc97c47d-1106-4450-b15e-b58087807a91
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/91dff8e7-c5fa-4e08-a981-7222564f883f
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/06abe9e7-ff7b-4fae-b69d-a4cacc73f4a8

"A ripe strawberry".
performance: 7 minutes for geometry modeling and 910 minutes for appearance modeling on 8 A100 GPUs
resolution: 256
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/a0452674-68bb-4227-ba73-9ed361e2e35f
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/acd52959-3fcf-4825-81b1-3b9efa2fb6cc

@ARuiChen Hello ! Thanks for so many great demos. But these configs are not seen in config golder,when they will be released? Thanks!

@ARuiChen I have seen a lot of greate demos in paper, such as A 3D model of an adorable cottage with a thatched roof. Can you release the configs of the demos shown in paper? thanks!

@VLadImirluren The results in the paper were generated using unorganized code, so the configuration I previously used may not be applicable. It's easy to replicate all the results using organized code, but I don't have time to complete it, and now I only have some fragmented time to run new results.
BTW， the configs about strawberry and candle have been committed.

"a detailed human heart".
performance: 7 minutes for geometry modeling and 10 minutes for appearance modeling on 8 A100 GPUs
DMTet resolution: 256
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/61927c91-b895-4adb-bf13-9479baca9616
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/19c3fa99-e6c3-42bc-972f-0001ac14b8df

"A typewriter"
"a model of a house in Tudor style"
"Rabbit head"
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/350369e5-884a-45a9-8ca3-3f768ec84c7a
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/c8c37a2d-d795-442a-b168-6840fcfe49fd
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/7c98eec8-fcdd-4eff-8558-b1f026233353
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/afe9bb3c-3aa4-41b9-a495-3aa71a06941b

"A wooden deer standing on two separate wooden skateboards".
performance: 7 minutes for geometry modeling on 8 A100 GPUs
DMTet resolution: 256
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/bf20a4cc-d55e-435a-be61-7518cc8ddb52
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/29dee0ab-cd6f-437f-92b2-579a11d6ec58

"A frog".
performance: 7 minutes for geometry modeling and 8 minutes for appearance modeling on 8 A100 GPUs
DMTet resolution: 256
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/6ced01cc-dd5a-49fd-930c-2a0a312854ba
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/fe30fc6a-7e62-4b94-8547-98e9529e6777
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/912d24b6-6d55-4212-b764-9210a2d776ec

@VLadImirluren . Of course, except for some that I don't want to release yet, I will release most of the corresponding configurations in the future. But I am currently busy with something and I will finish it tomorrow evening.

@VLadImirluren . Of course, except for some that I don't want to release yet, I will release most of the corresponding configurations in the future. But I am currently busy with something and I will finish it tomorrow evening.

sometimes, I can't reach the same as yours.I am confused that is the problem of different GPU? Can you share the GPU you use with us?(I see most of them are A100 * 8, how can I reach the same as yours on V100 , 3090 or 4090?)

The GPU type only affects the generation speed and does not have a significant impact on the results. The most significant impact may be on the number of GPUs, as my algorithm was debugged under 8 GPUs， which is related to the sampling perspective in the dataset.py.

@ARuiChen I went back and tested for a long time, but I still couldn't reproduce the appearance of the cottage. By adjusting the strategy, I made the geometry smoother, but there is still a lot of noise in the appearance. Could you please share the appearance settings of the cottage?  Thanks

Sure, wait a few minutes for me.

Sure, wait a few minutes for me.

Could you please show the geometry and appearance of "a model of a house in Tudor style" if it is convenient? . . thanks. . . . .

Done. house_geometry.json and house_appearance.json. Please pull the latest code. Push an issue if you have any other questions. This is where the Gallery is located ^_^.

Done. house_geometry.json and house_appearance.json. Please pull the latest code. Push another issue if you have any other questions. This is where the Gallery is located ^_^.

thanks. I will

“A man riding a bike”
Performance: 9 minutes for geometry modeling on 8 A100 GPUs
DMTet resolution: 256
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/47995d25-79ba-4d1c-8fc2-baf46d689f68

text: “michelangelo style statue of an astronaut carrying space jet backpacks and wearing spacesuits”
negative text: "shadow, oversaturated color, strange color"
Performance: 8 minutes for geometry modeling and 8 minutes for appearance modeling on 8 A100 GPUs
DMTet resolution: 256
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/43ad4f6c-81b2-4a10-ae5d-c47dcfd0a198
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/252febee-37fa-4202-97ed-33a4b1c5882b

text: “A standing bulldog wearing a black pirate hat”
Performance: 8 minutes for geometry modeling and 8 minutes for appearance modeling on 8 A100 GPUs
DMTet resolution: 256
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/fc5ed3fd-de28-4314-91f2-9f3dc5e2ce9c
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/973ca450-40a0-470c-8f0e-8e2139d5e762
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/8786d7f0-e5a0-4444-9f8b-c85dc66ee258

text: “military Mech, long barrel”
Performance: 8 minutes for geometry modeling and 8 minutes for appearance modeling on 8 A100 GPUs
DMTet resolution: 256
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/0eef971d-aace-4adb-87ec-7ff9ccfc0025
https://github.com/Gorilla-Lab-SCUT/Fantasia3D/assets/128572637/89eeef5e-cbff-4495-a899-dd03ce36e5db

Hi, @akturtle ! No problem. But there may only be geometric parts, as UV padding for appearance requires some additional time using blender.

Hi! So how to download the geometry of the results, please?

@yd-yin here


When Adding so many elements into Properties, not all get added.

Describe the Issue
If using a for loop to add elements to the Properties, Errors get thrown once the list is so big.
Library Name and Version:
Name:  Simple Properties.
Version: 1.0.6
Environment:

Platform/OS: [e.g., Windows, macOS, Linux] Windows
Arduino IDE version (if applicable): NA
PlatformIO version (if applicable): NA
Development board (if applicable): Simulated Arduino Uno

Library Source:

[x] GitHub
[x] PlatformIO Registry

Expected Behavior
All Elements should get added with no problems.
Actual Behavior
List starts returning an error.
To Reproduce
Steps to reproduce the behavior:

Include library '...'
Initialize the library '...'
See error

Error Message & Code Snippet
[ERROR]:
// Your code that triggers the error
Screenshots
If applicable, add screenshots to help explain your problem.

Additional Context
Add any other context about the problem here.

<!-- End of the issue report template. -->

Issue seems to be a memory constraint for the Uno. When using a Simulated Mega, the table resizes perfectly and has no problems. All elements get added with no problems. Cap on uno seems to be about 86 elements.


Pretrained weights For Tiny-motion net

Hi, I was wondering if you had the pretrained weights for Tiny-MotionNet? If so, would it be possible for you to share it. Thank you so much!

No. I guess you should reach to the authors of  "Tiny-MotionNet".


make the :otp_app argument to a new Repo optional

if declaring repo options inline (via using Ecto.Repo opts) the
:otp_app option is unesscessary. using Keyword.get/2 instead of
Keyword.fetch!/2 returns nil if :otp_app is missing which
results in [] being returned from the Application.get_env call,
the same result as if :otp_app pointed to a missing config

This unfortunately has the downside we are no longer giving feedback to the ones that forget the key. So I would prefer to have an explicit why to opt-out. Why don't you have a name in your case?

closing this, see #1964


State Farm Coding Competition - Joshua Koh / Andrew Oliveira

It was a fun project this year! Thanks State Farm!

Save me from the nothing I've becooommeee


[stable/presto] Update deployments api version

Is this a new chart

NOTE: We're experiencing a high volume of PRs to this repo and reviews will be delayed. Please host your own chart repository and submit your repository to the Helm Hub instead of this repo to make them discoverable to the community. Here is how to submit new chart repositories to the Helm Hub.

What this PR does / why we need it:
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] DCO signed
[ ] Chart Version bumped
[ ] Variables are documented in the README.md
[ ] Title of the PR starts with chart name (e.g. [stable/mychartname])

@idonca please follow the issue template checklist (DCO, bump version). I have updated the issue title.


Issue when using @IBDesignable

Hi,
@IBDesignable is not working when I add your pod into my Podfile. I don't know how is that related but without calendar this works, with a calendar I get build failed and can't use @IBDesignable, @IBInspectable features and I am not using this on a view that holds a calendar, it is another view.  Do you have any idea what is causing this?

I can ignore this one. I have some weird Xcode problems as usual.

Alright then, i assume it was fixed?
But yea, IBDesignable and IBInspectable should not affect the calendar. If you need any other help, you know where to find me.


fix: Remove email button in profile view

Closes #15956

Pre-Submission Checklist

[x] Your pull request targets the staging branch of freeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Addressed currently open issue (replace XXXXX with an issue no in next line)

Closes #15956
Description
Simply removing the email button from profile view as required by #15956

This specific PR will need major changes with the context of staging, namely:

The button will have to go on the settings page (already react view).
The button will have to go on the user page (the pug view which is being revamped).

/cc @zk433 can you please add this to the issue you already are working on appropriately, so that its tracked and taken along.
@muggahtee I am closing this, because this PR would be easier taken there, please proceed with making the same change against backup/master

@raisedadead , can you clarify :

The button will have to go on the settings page (already react view).
The button will have to go on the user page (the pug view which is being revamped).

I thought the button is being removed completely, from staging and from master branches?
Thank you.

@zk433 I'll leave comments on the original issue #15956


Review and fix tools docs

Fixes several broken links.
Proposed Changes

Fixed all links broken after moving tools to packages folder due to lerna integration
Fixed several typos
Removed several unused files (mainly those within .vscode folders)

Testing
No broken links should appear in docs

Pull Request Test Coverage Report for Build 824

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 69.404%

Totals

Change from base Build 808:
0.0%

Covered Lines:
3424

Relevant Lines:
4740

💛  - Coveralls

do not remove

Refers to: .vscode/launch.json:20 in 4b62cdd. [](commit_id = 4b62cdd15fc0587675b26f07bf2e7255694f5ae1, deletion_comment = True)

Just kept only .md file updates.


Don't show "no apps/deployments" message during page load

During page load empty messages are shown in the UI:
No running apps in the apps tab and No deployments in progress in the deployments tab.
These should not be shown until the load has completed and the apps/deployments list is known to be empty.

Will be closed when https://github.com/mesosphere/marathon-ui/pull/98 is merged

Not sure why this was closed, I suspect I slipped in Waffle. Sorry!

Yeah thought so! np


Task-5: Replace day count with fixed amount

As a user I want to load news by chunks of fixed amount. for example by 50 news
Acceptance criteria:

days are removed
news are load by fixed amount

@ArtemZagorovski эстимейт

4 часа


phone adware: santknow

Similar to the one described in the previous issue. I think there is some adware on the phone that's loading a variety of ad websites.
ad link: https://santknow .com/fashion/0809/873938047014535168.html
screenshot: https://files.catbox.moe/1ni0hl.jpg
No results on google for this site other than the site itself.

Would you mind passing these onto the person who's device it is:

https://malwaretips.com/blogs/how-to-reset-chrome-browser-settings-on-android-phone/
https://support.google.com/accounts/answer/9924802?co=GENIE.Platform%3DAndroid

Thank you for this Devon @hyder365.
What "previous issue" are you referring-to here?

https://github.com/StevenBlack/hosts/issues/2403 I assume?


control backup threads

Signed-off-by: linning<EMAIL_ADDRESS>
What have you changed?
control backup endpoint's thread pool
What is the type of the changes?

Improvement (a change which is an improvement to an existing feature)

How is the PR tested?
No
Does this PR affect documentation (docs) or should it be mentioned in the release notes?
No
Does this PR affect tidb-ansible?
No

/run-all-tests


Update array.fs

There may be a missing length check on exists, as without hte length check the cost of a comparison and a call is incurred.
Adding the simple len > 0 check before the loop appears (in the basic cases I have tested) to near triple performance.
let f arr =
    Array.exists (fun e -> e = true) arr

for i in 0..60000000 do f ([||]:bool []) ;; // 1.8 seconds

let f2 arr =
    if Array.length arr > 0 then
        Array.exists (fun e -> e = true) arr
    else
        false

for i in 0..60000000 do f2 ([||]:bool []) ;; // 0.430 seconds

Note: this is something I have found an isolated instance of, it may be appropriate to ensure that such checks (if they are required, I can only speak for my use case) are consistant accross other modules, such as Seq\List.

ive been advised that this belongs in visualfsharp, will close here and move accross


🐛 [Bug]: Issue 模板中的小助手微信号错误

Version
latest
Vue Version
latest
Link to minimal reproduction
应该是：opentiny-official

Step to reproduce
Issue 模板中的小助手微信号错误，应该是：opentiny-official
What is expected
No response
What is actually happening
No response
Any additional comments (optional)
No response

改动之后提交到pr了，#169

Fixed by @heygsc on #171


qtcreator: 13.0.2 -> 14.0.0

Motivation for this change
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)
[ ] 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/)
22.05 Release Notes (or backporting 21.11 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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

The packages in github are not officially supported, for official packages should check out https://download.qt.io/official_releases/qtcreator
qt creator 14 is a beta released,should wait the final release
https://www.qt.io/blog/qt-creator-14-beta-released
https://wiki.qt.io/Qt_Creator_Releases

OK :) Thanks for commenting!


Broken base64 images

First of all, thank you for developing this plugin. Made my life a lot easier.
I work with jupyter notebooks and mkdocs and there graphs will be outputted as base64 images. I discovered that Base64 images will be treated as a regular URL, and thus will be broken by the fix_image_src function. So I added a test for base64 images that checks if the url starts with data:image and ignores any base64 images found.
See PR #71

Released.. thanks again!
https://github.com/timvink/mkdocs-print-site-plugin/releases/tag/v2.3.4


Focus not shifted when opening/closing in iOS

When closing a modal, the focus is not moved from the trigger when opening, nor returned to the opening trigger.
Demo: can be seen on the micromodal.now.sh landing page.
iOS 14.0.1
Safari
Primarily affects VoiceOver users.
Not sure if this is a iOS 14 thing...

@bryanbuchs, hi!
How can I as non VoiceOver user test this issue?


Gas

Hello @enitrat I'd love to work on this gas builtin

Hi, after further research it seems that the Gas "Builtin" is not really a built-in but just a type for an implicit argument used to track gas usage throughout function execution. Thus i will be closing this

Hi, after further research it seems that the Gas "Builtin" is not really a built-in but just a type for an implicit argument used to track gas usage throughout function execution. Thus i will be closing this

Yes you are right sir


docs(configuration) update to use kong prepare

Update documentation to refer to kong prepare instead of kong compile, matching the feature set for 0.11. I also revised the entire section for customized Nginx setups, based on my experience learning my way around it, hopefully making it clearer.

Thank you for the review! Merging it in, then!


New version: Yidadaa.ChatGPTNextWeb version 2.15.5

Created by 🥟 Dumplings in workflow run #8817.

Log
Updated: 2.15.4 → 2.15.5
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Installation failed with exit code -1978335187
2024-10-15 12:26:46.930 [FAIL] Installer failed security check. Url: https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/releases/download/v2.15.5/NextChat_2.15.5_x64_en-US.msi Result: 0x80004005
2024-10-15 17:12:16.733 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerSharedLib\SHA256.cpp(144)\WindowsPackageManager.dll!00007FFC4B66273F: (caller: 00007FFC4B6AAEC4) Exception(1) tid(158) 8A150040
2024-10-15 17:12:19.627 [FAIL] Installer failed security check. Url: https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/releases/download/v2.15.5/NextChat_2.15.5_x64-setup.exe Result: 0x80004005

Automated error analysis suggests -1978335187 may mean Installer failed security check. Another script should retry this every 18 hours.
Automated error analysis suggests 80004005 may mean Resource missing
(Automated response - build 896.)

Automatic Validation ended with:

Installation failed with exit code -1978335187
2024-10-16 08:07:33.629 [FAIL] Installer failed security check. Url: https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/releases/download/v2.15.5/NextChat_2.15.5_x64_en-US.msi Result: 0x80004005
2024-10-16 08:07:03.202 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerSharedLib\SHA256.cpp(144)\WindowsPackageManager.dll!00007FFCF2AA273F: (caller: 00007FFCF2AEAEC4) Exception(1) tid(1060) 8A150040
2024-10-16 08:07:06.251 [FAIL] Installer failed security check. Url: https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/releases/download/v2.15.5/NextChat_2.15.5_x64-setup.exe Result: 0x80004005

Automated error analysis suggests -1978335187 may mean Installer failed security check. Another script should retry this every 18 hours.
Automated error analysis suggests 80004005 may mean Resource missing
(Automated response - build 897.)


4.x - Travis-CI: Require coveralls library only if in analysis mode

Travis-CI job for PHP nightly always fails because coveralls library does not work with PHP8.
This PR would make sure that the coveralls library would only be required in the ANALYSIS job.

Coverage remained the same at 100.0% when pulling 956544853c6ca931166da01cf134dc9655c067cb on adriansuter:patch-travis-php-nightly into 8ab34323b5a7fbff8b66853edd1cbe7bcd3c488b on slimphp:4.x.

It appears, that this did not work as expected as many other libraries are not PHP8 ready - including Slim 😄 .
Other libraries that would not work with PHP8:

nyholm/psr7
nyholm/psr7-server
slim/http
slim/psr7
phpunit/phpunit

Should we remove the php-nightly job for now?

I’m indifferent to leaving it / removing it since it doesn’t affect anything.

We should do that to all the repos that have coveralls enabled


What version of python has to be installed?

Hey, noob here.
What version of python needs to be installed?
How could I have figured this out on my own?
I'm having issues installing onnxruntime, I think it's my python version.

Solved.
Python 3.9 works.

@all-contributors please add @Emgimeer-Bazder for fixing a bug


Models used to get SQuAD data mentioned in former issues

Hi!  I am trying to apply other datasets to this py-irt model, and I noticed that your SQuAD dataset had been converted to jsonlines with fields 'subjects' and 'responses'. So could I ask which models were used to generate these responses? Or any models are okay as long as the format is the same as SQuAD you offered? Thanks in advance!

Any models are ok, as long as the format is the same. For your models you'll just want to make sure that you have a unique "subject_id" that maps back to a particular model.

Thanks a lot for your reply!

Hey @jplalor! Thanks for your response to this issue! We understand that any models can be used as long as the format is the same and there is a unique subject_id that maps to each model. For the purposes of our research, could we still get access to which particular models were used in the squad.jsonlines file that @EntilZha had linked to in an earlier issue? We are doing some IRT analysis on the SQuAD questions, and knowing which particular models were used in squad.jsonlines would be tremendously helpful to us :) Thanks a ton!

The code for the ACL paper is now open source @pk1130 https://github.com/facebookresearch/irt-leaderboard, I can take a closer look at your issue later, but is the issue that you'd like a correspondence between the model id and a readable name? If so, the data discussed on that github repo probably would help with that issue

That's precisely our issue, @EntilZha. Thanks a ton for pointing me to a useful resource! I'll take a look at it now :)

Sure, we will have a close look at the repo you gave. Thanks for your kind help!

Closing this. If you have additional questions let us know!


Add progress window while job is running

This commit adds progress window while job is running.
ONE-vscode-DCO-1.0-Signed-off-by: Jiyoung Yun<EMAIL_ADDRESS>

This PR will conflict with #634. After merged #634, I will change it to Normal PR.

PTAL @Samsung/one-vscode


BUG: Correct Categorical.codes

Set type to correct type

[X] Closes #111 (Replace xxxx with the Github issue number)
[X] Tests added: Please use assert_type() to assert the type of any return value

@bashtage can you add the assert_type() as discussed above?  Then we can get this one done.

I had to noqa the import to get it to pass flake8 since the import is only used in the assert type.

I had to noqa the import to get it to pass flake8 since the import is only used in the assert type.

The second argument of assert_type can not only be of type str but also the type itself.

@twoertwein When I remove the quotes it doesn't work in two different ways:

If I leave the if TYPE_CHCKING on the import, pytest fails NameError: name 'np_ndarray_int' is not defined
If I take away the if TYPECHECKING on the import, I get  ImportError: cannot import name 'np_ndarray_int' from 'pandas._typing'


Downloading a file in Windows I have to retype file name

When downloading a file in Windows when the box pops up asking where to download the file, usually for Windows users we are used to having a default file name there already and can change it if we want.
But in Sia when downloading, the file name is blank and its a pain to have to type in the name manually.

I attempted to address this here: https://github.com/lukechampine/Sia-UI/commit/cb05fb7d3c5a786e65dfd02a24bf667f01aabdfe
But it still isn't behaving ideally. Specifically, it only fills in the filename if the file already exists on disk. Otherwise it's blank. I'm not sure why this is.

Yea, sorry. I meant to go to Sia-UI but had Sia bookmarked and didn't pay attention. Happens to me a lot.

Unfortunately it seems like autofilling the filename is not supported by electron. David is going to file a bug report. In the meantime, we'll have to close this as a "can't fix."

@rj134a, @lukechampine: https://github.com/atom/electron/issues/1855#issuecomment-108653674
Seems like there's only a problem on Linux, and that our fix works for Windows and Mac. After the next release you shouldn't have to type the filename yourself unless you are a linux user.


config/logging: Switch no admin warning -> info

This warning is unhelpful, given that its preferable to have no admin configured, than configured badly.
It also doesnt seem correct to assume that a user should have admin configured, or that they should be warned if not.


Error messages (41)

The [import] tag requires a string (that is interpreted as file). Therefore the value type must be checked. This is not implemented and the current error handling is insufficient.
Examples:
"[import]" : 123
Error: 'argument of type 'int' is not iterable

"[import]" : [1,2,3]
Error: ''list' object has no attribute 'strip'

"[import]" : {"A" : 1, "B" : 2}
Error: ''dict' object has no attribute 'strip'

"values" : {"A" : 1, "B" : 2},
"[import]" : ${values}['A']
Error: 'File '%values%['A']' is not existing!'!

Expected error handling:

Check value type, error if not a string
Check existence of file, error if file does not exist
Check file content, error in case of content related error

Hi Holger,
please provide tests for this.
Thank you,
Thomas

JPP_1161
JPP_1162
JPP_1163
JPP_1164

Current error:
'The value of [import] parameter must be 'str' but receiving the value '123''
Please rephrase to:
The [import] key requires a value of type 'str', but the type is 'int'.

Hi @namsonx ,
please check the finding from Holger.
This should be in 0.13.1, too.
Thank you,
Thomas

Hi @namsonx ,
please check. This should be not difficult.
Thank you,
Thomas

Hello @test-fullautomation, Hello @HolQue,
The error message was updated and pushed to the stabi branch.
Thank you,
Son

Retest successful. Issue can be closed.


High idle utilization

Under both X11 and Wayland, I see ~2% idle CPU usage from simply having a file open, without cursor focus and thus no ongoing animations or rendering.
I would expect a rock-solid 0% in this scenario. I have not looked into what is causing the wakeups.
(Note: Target machine is an ultrabook that tends to run at 800MHz, which amplifies these types of idle/background drains.)

On windows for me just opening the sqlite3 amalgamation C file (its like 204k LoC) with lite open on a decently sized C++ project cpu usage oscilates between 0.2% and 25% (On an i5 haswell cpu) with lite idle in the background (Not the active window). Memory usage also seems to be climbing steadily with it on the background like that

@kennylevinsen I agree this isn't ideal and something I'll look into
@nico-abram Does this happen with no files open? Would you be able to let me know how many files it reports the project having? (If you close all the views or press ctrl+shift+p it will say it in the bottom right)

https://i.imgur.com/t981slq.png
48278 files (This includes third party libs like pcre, zlib, stb, discord rpc, ffmpeg, luajit, sqlite and sqlitecpp, fftw, libcurl, libmad, tomcrypt, newvorbis and newogg, rapidjson, websocketpp, etc)
You're right, it happens even with no files open. Is it the project/file scanning?

I believe this may be the case given the number of files; presumably setting config.project_scan_rate to  30 would cause the spike to happen less frequently and confirm this to be the cause.

I just made it only do the scan at startup and that completely removed both the memory increase and the cpu usage, so yes, it's that

@kennylevinsen I've pushed a commit which should lower idle CPU usage when the window isn't focused: c215eff6d8b1774ac214a96b2ba2370b4474b60b
@nico-abram the project-scan-with-many-files problem is separate to the original issue in this thread, but is certainly not ideal behaviour; feel free to open an issue specifically for this problem and then I can close this one, thanks!

Hmm, the linked commit does appear to reduce utilization when the window is not focused, but with a 500 ms timeout it's still enough to stand out. (Testing on a work desktop at the moment, so numbers are not comparable).
The proper solution involves converting core.run() itself to be event-based and cranked by SDL_WaitEvent, placing other event sources in SDL's event loop as necessary. The main issue would appear to be run_threads, which would need to be replaced by a task queue that wakes the loop when tasks are pushed.

The 500ms timeout is intentional so minor background tasks can still continue to run, albeit at a trickle compared to when focused. If you feel it's still taking too many resources you can increase this timeout value on your local copy, likely with few-if-any practical negative consequences. I personally consider the behaviour to be acceptable and don't intend to change it any further, I don't feel the application should be restructured just to reduce an already fractional percentage of CPU usage.

I hope it wasn't coming across as a strong criticism. It's still an improvement. I'm just on an eternal vendetta against idle utilization that isn't doing anything as it negatively affects battery life.
Would you be opposed to improvements here? If so, I might try to look into it myself.

As a laptop user I'm on the same page and in agreement with the general idea of not wanting to burn through battery life unnecessarily, this primarily is why I made the changes I did in the first place. That being said I'm happy with the current structure of the thing and don't feel adding extra complexity is worth it, the amount of CPU usage we're talking here is tiny and realistically I doubt is having any practical negative effects on battery life.

Looking at things, I suspect the situation might actually be fixable with very minor changes, maintaining run_threads and everything else pretty much as-is.
Progress is a little slower than I'd like due to never in my life having used Lua, but I might have something to show relatively soon.

I have thrown something together over in https://github.com/kennylevinsen/lite/commit/5f3332149bd985db6802ad6de04dc8de2ec2a548.
The general idea is that View:update implementations can return a sleep target if they have future work (e.g. cursor blink). Combined with thread.wake, this allows calculating the appropriate sleep duration for a big SDL_WaitEvent, which will wake prematurely on user activity.
However, unfortunately I also fell over this little piece of SDL, which puts is putting a stick in the wheel for a full flat 0%: http://hg.libsdl.org/SDL/file/ccd76043c80e/src/events/SDL_events.c#l742. That is, SDL_WaitEvent is just for(;;) { if(hasEvents()) return; usleep(1000); }, instead of a poll with timeout as it should have been. Seems like SDL wasn't really targeting general purpose applications here, but only games.
I'll need to ponder some more.

I'm not happy with the amount of changes this requires. The complexity added is completely disproportional compared to how much of a problem this actually is. We're talking fractions of a percentage, lite sits around the middle of other idle processes when I run top and reports 0% CPU usage in windows task manager.
I'm in agreement with the base motivations ("don't waste resources") for wanting to further improve this, but from a practical standpoint I don't feel it's realistically a problem.

Which part of the changes specifically are you unhappy with? I believe it would be more productive to discuss specific issues and possibly consider alternative solutions.
Windows task manager does not provide usable CPU load measures for sleeping loops like this. It doesn't show you the cost of the sleep at all. Linux CPU load measures show a more complete cost including kernel time, making them more representative (although of course not as good as profiling on any OS). I recall a cross platform code base from a decade ago that for the same loop showed 10-30% load on Linux and 0% on Windows.
I'm at 2-4% CPU idle on my laptop on master, which is quite significant. Note that the main issue for battery drain is not the cycle count, but that it causes wake ups, taking the CPU out of lower power states, keeping at awake for the minimum duration (these state changes take time).
However, if you're truly just entirely against additional work here, then I guess that's the unfortunate end of it. I'm only being stubborn because I like the project, and am considering throwing my current editor to the curb. :)

lite is inevitably going to be using some processing power when idle to perform background tasks. As I said before I don't feel this is realistically an issue and isn't worth adding any additional complexity over. I feel the best solution for you to reduce the CPU usage on your personal instance would be by increasing that 500ms timeout, but as you pointed out you'd still have the issue of how SDL_WaitEventTimeout works.


Permission Scope Assignment

The Security permissions need to be assigned on the Subscription and not the resource group for assigning a JIT policy and viewing the policy. Changes:
Line 72: Removed the resource group as the assignment scope - Policies can only be enabled with Subscription permissions
Line 74: changed the scope to the subscription since the Microsoft.Security/policies/read needs to be on the subscription - Even with owner permissions on the RG the user cannot view the configured policies

Learn Build status updates of commit cb75571:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: RuningBuildFailed] Some unexpected errors happened when running build, please open a ticket in https://aka.ms/SiteHelp and include the error report for our team to troubleshoot

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Learn Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit cb75571:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/defender-for-cloud/just-in-time-access-overview.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@elazark
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@kapetanios55 I'll check this out but please install SpineEdit and resubmit the PR on the private repo.
SpineEdit is available in the Chrome web store but the extension works in all Chromium-based browsers, including Microsoft Edge.

#please-close


Cache python dependencies across Travis builds

Alternative to #3264.

This will cache gratipay application files also.

Ready for review. Build time is around 2 min 30 sec, down from around 3 min 20 sec without caching.

Do you guarantee that this won't cache any files that is installed by Gratipay?

Caching parts of env/ between builds is similar to what happens on my machine and those of the other developers where env/ is almost never deleted. If it was problematic we would have noticed it a long time ago.

I can't approve that, because I haven't finished WIP over #3264 yet

I'm fine with this on branches. On master we should make a clean build, just as on master we hit live API endpoints instead of using the VCR cache.

As I read this it would apply to master as well as other branches, correct? Can we scope this to branches other than master?

Can we scope this to branches other than master?

Done.


Enhancements to size of filters in Leaderboard page

Currently, the size of each filter is not proper.

[ ] Search filter should occupy 1/3rd of the total width
[ ] And the rest of the items should be equally spaced (The role filter is taking unequal space)

can you please assign me

@rithviknishad  please review the PR

Hey @rithviknishad , can I work on this issue ?

I have done this. Is this okay can you please check and tell ?

Looking great!

Okay thank you, I'll move ahead with it.
I also found something which might be an issue. Its my first time contributing so I'm not sure about this.
Previous Mobile view :

New Mobile View :

This new view is fine ? Or I revert it to previous version ? Or should I report it as a bug in issue section ?

This issue is not present in the current deployment, right? Couldn't replicate it from my end. I believe this issue was caused by the code changes made to solve this issue.
Anyhow, you can fix it in the same PR.

Hi, can you please review my PR?


shrinkwrap and OSSREADME.json for emmet

@ramya-rao-a The only thing which is not clear to me is why does the OSSREADME.json repeat 3 of the consumed node modules that are already present in the npm-shrinkwrap.json ? Was it a case that the oss tool does not discover the LICENSE files for these node modules ? If that is the case, then isLicense can be used in the OSSREADME.json to overwrite the auto-discovered license. Or are these node modules checked in to our repository ?

@alexandrudima My mistake. I assumed that OSSREADME.json should have an entry for each of the dependency in the package.json
Updated with https://github.com/Microsoft/vscode/commit/275c3fd527a53a5a27bd3ed3c200842bb58022cf

:+1: I'm sorry the README.md is worded in a funny way -- https://github.com/Microsoft/vscode-distro/tree/master/distro-tools#ossreadmejson-specification
The idea is that OSSREADME.json can have two types of items:
One type fully describes an OSS dependency that does not come from npm-shrinkwrap.json

this can happen when including OSS code straight in our repository, or in other special circumstances, such as e.g. us consuming the oniguruma node module which fails to credit the oniguruma regex library in their License file although the regex library is shipped with the npm module. other special cases in this category include platform deps, such as nodejs, etc.
for example, we are consuming chjj-marked and checking it in with our sources. Since npm-shrinkwrap.json does not mention chjj-marked, we must declare that we are using it. e.g.

{
	"name": "chjj-marked",
	"repositoryURL": "https://github.com/npmcomponent/chjj-marked",
	"version": "0.3.2",
	"license": "MIT"
}

in this case, since this OSS item is not resolved from npm, it is important to specify: name, version, license and repositoryURL
sometimes, the LICENSE text cannot be fetched automatically by the oss tool from the listed repository. e.g. the author does not include a LICENSE file. In this case, one can inline the license text via licenseDetail. example here

The second type of item is one that just binds a LICENSE text to an npm module

even though a dependency can come from npm, the oss-tool might not find automatically the LICENSE text. In this case it is possible to associate a license text with an npm module consumed via npm-shrinkwrap
an good example is here:

{
	"isLicense": true,
	"name": "uc.micro",
	"licenseDetail": [
		...
	]
}

the npm node module uc.micro we consume does not include a LICENSE text file, it has a link tag in its readme and not the full license text, so the oss tool cannot automatically fetch the LICENSE text.
in this case isLicense, name and licenseDetails can be used to bind this license text to a npm module.

If you have a better understanding of how this works, please consider updating the README.md at https://github.com/Microsoft/vscode-distro/tree/master/distro-tools#ossreadmejson-specification to simplify or correct it.


Ammonite Shell doesn't work with Spark REPL

https://issues.apache.org/jira/browse/SPARK-15014

Let's keep the discussion to #382

FYI ammonite-spark now allows to run spark calculations from Ammonite.


The modal should not appear in desktop version, it should be when site is opened in tab or mobile mode.

This is not an issue with UX.
The Sidebar Navigation drawer provides not only the basic navigation as in the main navbar, but also has groups and more links. For instance here, the 'Contact Us' contains direct links to social media sites. We can add more links/content as per requirements, excluding what's already there in the main navbar here.
I believe this is good design pattern, even thought not fully necessary. But we can always remove the button in desktop site if we want it mimic Bootstrap or so. @sumedh123 @kvnamipara Opinions?
This issue can be closed if we're fine with the current UX.


integrate KWARC branch into sTeX plugin

Deyan said that he would work with Bruce to integrate the specifics of the KWARC branch of LaTeXML that cannot be overwritten by the plugin into the LaTeXML core, and then add the rest of the KWARC branch here, so that we can close the KWARC branch.

Currently the "only" failures with the brucemiller/LaTeXML branch are:
error: latexml-compiler: missing_file:lstomdoc Can't find package lstomdoc
error: latexml-compiler: missing_file:calbf Can't find package calbf

see https://travis-ci.org/KWARC/localmh/builds/102659829

those files are either not present in the stex plugin, or the paths to them haven't been added to the stex profile file.

I made a plugin KWARC/LaTeXML-Plugin-KWARC for them. You should use that as well in the travis tests.

I've used LaTeXML-Plugin-KWARC, but maybe it was an older version. I'll rerun the test.

I have also moved subdirs around (but tried to fix things in the travis files. Please check that as well.

The current test https://travis-ci.org/KWARC/localmh/builds/103312245 fails now with many
latexml-compiler: stex:locator Locator "at /home/travis/build/KWARC/localmh/MathHub/HelloWorld/smglom/source/???.tex; line ?? col ??" is garbled, expect nonsense in stex:srcref ...

hmmm, It seems that it is compiling the lib subdir for some reason, that should not be the case. It chokes  on post.tex there (not surprising).

I believe, it is not traversing the lib subdir but it only takes lib/post.tex as postamble.

I tried running lmh omdoc locally, and I am not getting errors.

The errors occur for brucemiller/LaTeXML

Oh, but that was never expected to work, can you please switch back to the KWARC branch?

Am I on the wrong issue here? Maybe it should be #13

No, but the integration needs to be planned out by Deyan and Bruce, just testing is not going to work. It is a long-term thing.

the localmh master was fine 24 hours ago (and I'm just rebuilding it). The above errors occurred for my localmh brucemiller_latexml branch.

thanks for the clarification. I do not think that there is anything you can help here. We should just delete the branch from travis

right, the localmh diff is pretty trivial
--- a/lmh/data/config.json
+++ b/lmh/data/config.json
@@ -67,7 +67,7 @@
        "setup::latexml::source": {
                "type": "string",
                "help": "Default Source for latexml. ",
-               "default": "https://github.com/KWARC/LaTeXML.git"
+               "default": "https://github.com/brucemiller/LaTeXML.git"
        },

the discussion here has diverged, and we have the new #76 therefore I close this issue.


Button TooltipTitle does not disappear when clicked #222

Unfixed. I have a button that open/closes internal grid filtering and if it is pressed the tooltip remains:

1.8.2, browser cache cleared.

@LucaCris When a user clicks on the button, it will remain in focus and the tooltip will show up until the user clicks anywhere else on the web page.
Bootstrap Tooltip: https://getbootstrap.com/docs/5.3/components/tooltips/#custom-tooltips

@LucaCris If you see a change in the behavior, please open a new issue with a sample GitHub repository and minimal reproduction steps.
Thank you for trying BlazorBootstrap components. We are always happy to improve the components to make them better.


How to use

Can you provide some information about how this shall be used? When I try to add it as repository in HACS I get the following error:
<Plugin osohotwateriot/ha-osoenergy-waterheater-cards> Repository structure for main is not compliant

Hello,
This repository is currently obsolete and would need to be updated in order to be used.
The cards were developed with the full functionality of the integration in mind but as the initial pull request for Home Assistant needed to be as small as possible it will have to wait untill everything is included back to the integration.
I will keep the issue open for now and will close it once the cards are ready to be used and included in HACS.


Invalid value error when trying to export data

Hello,
when the --data parameter gets a path name, that includes a comma, you get a error: invalid value for '--data <data>' message. This becomes a huge issue, when you try to pass the full path, for example because you call dovi_tool from a script or so:
dovi_tool.exe export --data "level5=MetaL5.json" --input Meta.bin  ✔
dovi_tool.exe export --data "level5=Meta, only L5.json" --input Meta.bin  ❌
dovi_tool.exe export --data "level5=A.\Path\To\MetaL5.json" --input "A.\Path\To\Meta.bin  ✔
dovi_tool.exe export --data "level5=A.\Glorious, Path\To\MetaL5.json" --input "A.\Glorious, Path\To\Meta.bin  ❌
Could be related to the usage of , as separator between keys.

I don't think there's anything I can do about it.
It's handled by clap's parser and it doesn't seem to support escaping inside values.
The easiest solution is to avoid using commas in paths.