driver: improve cqueue dispatch

Fixes #147.
This PR makes a few changes:

It changes our ticking behavior to loop on a full cqueue to ensure that we actually fully clear out the queue in the event of an overflow.
It adds an optimization to our parking routine which allows us to potentially wake tasks instead of parking on epoll.
It makes our parking routines attempt to tick futures if we hit EBUSY

We should not merge this until we have a repro of #147.

Okay, you have my attention. I have a reproducer. I'll try it out. I can also share the reproducer with you if you want to try it out yourself, along with all those new flames.

Here's my reproducer if you feel like trying it yourself.
examples $ cat test_hang_on_small_completion_queue.rs
use std::io;
use clap::Parser;
use tokio::sync::mpsc;

#[derive(Debug, Parser)]
#[command(about = "Serve TCP connections, testing the buf_ring feature. Client can be 'nc <ip-addr> <port>'.", long_about = None)]
struct Args {
    /// Spawn count, how many no_op tasks to spawn consecutively
    #[arg(long, default_value_t = 16)]
    spawn_cnt: usize,

    /// Squeue entries
    #[arg(long, default_value_t = 4)]
    squeue_entries: u32,

    /// Cqueue entries
    #[arg(long, default_value_t = 0)]
    cqueue_entries: u32,
}

fn main() -> io::Result<()> {
    let args = Args::parse();

    let spawn_cnt = args.spawn_cnt;
    let squeue_entries = args.squeue_entries;
    let cqueue_entries = std::cmp::max(args.cqueue_entries, 2* squeue_entries);

    tokio_uring::builder()
        .entries(squeue_entries)
        .uring_builder(tokio_uring::uring_builder().setup_cqsize(cqueue_entries))
        .start( async move {

            let (tx, mut rx) = mpsc::channel(2*spawn_cnt);

            for i in 0..spawn_cnt {
                let tx = tx.clone();
                tokio_uring::spawn(async move {
                    tokio_uring::no_op().await.unwrap();
                    tx.send(i).await.unwrap();
                    Ok::<(), io::Error>(())
                });
            }

            while let Some(i) = rx.recv().await {
                println!("got = {}", i);
            }
        });

    Ok(())
}

And ran it with ' --spawn-cnt 100 --squeue-entries 2' the last when it didn't work. It didn't print out all 100 lines.

It could be that when I was working on this, last month I think, I had to change my version of io-uring too, and without proof of whether it was needed or not, I didn't  push to get it upstreamed yet.  The crux is the uring interface won't push its overflow to the cqueue unless IORING_ENTER_GETEVENTS is set in the call to enter. I don't think the api let's you do that from tokio-uring manually.
Here's the basic diff. By having io-uring also check for the overflow bit, it knows when it should set the bit, otherwise since we don't want more than 0, that bit doesn't get set.
Before
    pub fn submit_and_wait(&self, want: usize) -> io::Result<usize> {
        let len = self.sq_len();
        let mut flags = 0;

        if want > 0 || self.params.is_setup_iopoll() {
            flags |= sys::IORING_ENTER_GETEVENTS;
        }
After
    pub fn submit_and_wait(&self, want: usize) -> io::Result<usize> {
        let len = self.sq_len();
        let mut flags = 0;

        // TODO is this the right way to handle the overflow, from this crate's perspective?
        // Will need to ask the maintainer.
        // Was
        //    if want > 0 || self.params.is_setup_iopoll() {..}
        if want > 0 || self.params.is_setup_iopoll() || self.sq_cq_overflow() {
            flags |= sys::IORING_ENTER_GETEVENTS;
        }

And sq_cq_overflow is defined like this:
    fn sq_cq_overflow(&self) -> bool {
        unsafe {
            atomic::fence(atomic::Ordering::SeqCst); // Refer to comment in squeue.rs for same code
            (*self.sq_flags).load(atomic::Ordering::Acquire) & sys::IORING_SQ_CQ_OVERFLOW != 0
        }
    }

@FrankReh I've slightly modified it and added it as a test.

@Noah-Kennedy That's nice. We can tweak the numbers. Something a little smaller or perhaps larger, if it is truly fast enough once it works. If we can make it gracefully timeout and report an error, that would be more user friendly. Maybe the std test timeout is short enough, and it keeps the logic simple.

We should not merge this until we have a repro of #147.

Simply increase the concurreny factor in the benchmark past the size of the cqe.

Can this wait until the older PRs are in now? I don't believe this PR is a blocker for other PRs or issues. I would like to participate in looking at benchmarks once the benchmarking PR is in and once the older PRs are handled.

This can absolutely wait

@Noah-Kennedy See #160


Flowaggregator panic: runtime error

Describe the bug
flow-aggregator pod crashes fairly infrequently.
NAMESPACE            NAME                                            READY   STATUS    RESTARTS   AG
flow-aggregator      flow-aggregator-69f476cf7c-mbcgv                1/1     Running   22         9d

kubectl describe does not give much information to go on.
Last State:     Terminated
      Reason:       Error
      Exit Code:    2
      Started:      Tue, 12 Jan 2021 13:52:00 +0000
      Finished:     Tue, 12 Jan 2021 14:08:25 +0000

Using kubectl logs with previous flag I can grab the logs but often not all of the traceback.
kubectl logs flow-aggregator-ddd46cfc7-h4kff -n flow-aggregator -p
I have included the few lines above the "panic" to show that it is not the same preceding issue causing it, so it seems. The runtime error sometimes has different output such as actual segmentation fault information in a few instances.
Actual behavior
kubectl logs flow-aggregator-ddd46cfc7-h4kff -n flow-aggregator -p
I0112 13:52:00.592685       1 flow-aggregator.go:27] Flow aggregator starting...
I0112 13:52:00.597287       1 tcp.go:38] Start tcp collecting process on [::]:4739
E0112 14:00:55.171757       1 tcp.go:90] collector only supports IPFIX (v10); invalid version 2923 received
panic: runtime error: slice bounds out of range [:232] with capacity 95

goroutine 53 [running]:
github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient.func1(0x91b940, 0xc000107258, 0xc0002d2000, 0xc0019812c0, 0xf)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:88 +0x68a
created by github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:65 +0x18a

different crash below
W0112 14:28:55.161455       1 aggregate.go:247] This field with name destinationClusterIPv4 should not have been filled with value <nil> in existing record.
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x6e38ad]

goroutine 21 [running]:
github.com/vmware/go-ipfix/pkg/intermediate.(*AggregationProcess).aggregateRecords(0xc0000a2150, 0x91b820, 0xc002a33230, 0x91b820, 0xc000216870, 0x100, 0x88fe4a, 0x12)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/aggregate.go:312 +0x5ad
github.com/vmware/go-ipfix/pkg/intermediate.(*AggregationProcess).addOrUpdateRecordInMap(0xc0000a2150, 0xc000e07d70, 0x91b820, 0xc002a33230, 0x0, 0x0)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/aggregate.go:176 +0x2db
github.com/vmware/go-ipfix/pkg/intermediate.(*AggregationProcess).AggregateMsgByFlowKey(0xc0000a2150, 0xc001022dc0, 0x2, 0x2)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/aggregate.go:118 +0x130
github.com/vmware/go-ipfix/pkg/intermediate.(*worker).start.func1(0xc0000f3680)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/worker.go:35 +0x111
created by github.com/vmware/go-ipfix/pkg/intermediate.(*worker).start
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/worker.go:26 +0x3f

different crash below
E0113 04:30:57.224860       1 process.go:195] Error when closing connection to collector: close udp <IP_ADDRESS>:51440-><IP_ADDRESS>:4739: use of closed network connection
panic: runtime error: slice bounds out of range [:249] with capacity 65

goroutine 46 [running]:
github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient.func1(0x91b940, 0xc0171fe000, 0xc000266000, 0xc019a7a010, 0xe)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:88 +0x68a
created by github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:65 +0x18a

Versions:
Antrea version 0.12
Kubernetes version:

Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:09:25Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.4", GitCommit:"d360454c9bcd1634cf4cc52d1867af5491dc9c5f", GitTreeState:"clean", BuildDate:"2020-11-11T13:09:17Z", GoVersion:"go1.15.2", Compiler:"gc", Platform:"linux/amd64"}

Container runtime: Docker
Linux kernel version: 5.4.0-47-generic
Openvswitch

To Reproduce
Run container with
AntreaProxy: true
Traceflow: true
FlowExporter: true
flowCollectorAddr: "flow-aggregator.flow-aggregator.svc:4739:tcp"

Have flow agg config setup to forward to ELK logstash pod on udp.
apiVersion: v1
data:
  flow-aggregator.conf: |
    externalFlowCollectorAddr: "logstash.elk-flow-collector.svc.cluster.local:4739:udp"
    flowExportInterval: 60s

Expected
No restarts / terminations.
Additional context
I understand a packet capture may be of assistance here however I am unsure what the best content / method to share it would be.

Thanks for the report @wiperpaul. I don't think a packet capture will be needed, the backtraces are pretty straightforward. I'm assigning @srikartati for triage.

Thanks for the report @wiperpaul. I don't think a packet capture will be needed, the backtraces are pretty straightforward. I'm assigning @srikartati for triage.

Thanks Paul for reporting the issue. Yes, backtrace is quite informative.

different crash below
W0112 14:28:55.161455       1 aggregate.go:247] This field with name destinationClusterIPv4 should not have been filled with value <nil> in existing record.
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x6e38ad]

goroutine 21 [running]:
github.com/vmware/go-ipfix/pkg/intermediate.(*AggregationProcess).aggregateRecords(0xc0000a2150, 0x91b820, 0xc002a33230, 0x91b820, 0xc000216870, 0x100, 0x88fe4a, 0x12)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/aggregate.go:312 +0x5ad
github.com/vmware/go-ipfix/pkg/intermediate.(*AggregationProcess).addOrUpdateRecordInMap(0xc0000a2150, 0xc000e07d70, 0x91b820, 0xc002a33230, 0x0, 0x0)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/aggregate.go:176 +0x2db
github.com/vmware/go-ipfix/pkg/intermediate.(*AggregationProcess).AggregateMsgByFlowKey(0xc0000a2150, 0xc001022dc0, 0x2, 0x2)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/aggregate.go:118 +0x130
github.com/vmware/go-ipfix/pkg/intermediate.(*worker).start.func1(0xc0000f3680)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/worker.go:35 +0x111
created by github.com/vmware/go-ipfix/pkg/intermediate.(*worker).start
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/worker.go:26 +0x3f

Looks like this one is happening because the associated field values in the decoded flow record are invalid. In this case, one of statElements values seems to be invalid. This has to be fixed in go-ipfix library. One possible solution is to validate every incoming flow record if the decoded values are valid or not before doing the aggregation. Will open an issue in go-ipfix repo.

Thanks Paul for reporting the issue. Yes, backtrace is quite informative.

different crash below
W0112 14:28:55.161455       1 aggregate.go:247] This field with name destinationClusterIPv4 should not have been filled with value <nil> in existing record.
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x6e38ad]

goroutine 21 [running]:
github.com/vmware/go-ipfix/pkg/intermediate.(*AggregationProcess).aggregateRecords(0xc0000a2150, 0x91b820, 0xc002a33230, 0x91b820, 0xc000216870, 0x100, 0x88fe4a, 0x12)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/aggregate.go:312 +0x5ad
github.com/vmware/go-ipfix/pkg/intermediate.(*AggregationProcess).addOrUpdateRecordInMap(0xc0000a2150, 0xc000e07d70, 0x91b820, 0xc002a33230, 0x0, 0x0)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/aggregate.go:176 +0x2db
github.com/vmware/go-ipfix/pkg/intermediate.(*AggregationProcess).AggregateMsgByFlowKey(0xc0000a2150, 0xc001022dc0, 0x2, 0x2)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/aggregate.go:118 +0x130
github.com/vmware/go-ipfix/pkg/intermediate.(*worker).start.func1(0xc0000f3680)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/worker.go:35 +0x111
created by github.com/vmware/go-ipfix/pkg/intermediate.(*worker).start
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/intermediate/worker.go:26 +0x3f

Looks like this one is happening because the associated field values in the decoded flow record are invalid. In this case, one of statElements values seems to be invalid. This has to be fixed in go-ipfix library. One possible solution is to validate every incoming flow record if the decoded values are valid or not before doing the aggregation. Will open an issue in go-ipfix repo.

The other two crashes seem to be somewhat related. They seem to be happening because of closing the connection after the error in decodePacket: https://github.com/vmware/go-ipfix/blob/release-0.4.0/pkg/collector/tcp.go#L66
Need little more investigation on why this panic error: panic: runtime error: slice bounds out of range [:232] with capacity 95
This also needs an issue in go-ipfix. Will open one there and connect the issue to this one.

I0112 13:52:00.592685       1 flow-aggregator.go:27] Flow aggregator starting...
I0112 13:52:00.597287       1 tcp.go:38] Start tcp collecting process on [::]:4739
E0112 14:00:55.171757       1 tcp.go:90] collector only supports IPFIX (v10); invalid version 2923 received
panic: runtime error: slice bounds out of range [:232] with capacity 95

goroutine 53 [running]:
github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient.func1(0x91b940, 0xc000107258, 0xc0002d2000, 0xc0019812c0, 0xf)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:88 +0x68a
created by github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:65 +0x18a

different crash below
E0113 04:30:57.224860       1 process.go:195] Error when closing connection to collector: close udp <IP_ADDRESS>:51440-><IP_ADDRESS>:4739: use of closed network connection
panic: runtime error: slice bounds out of range [:249] with capacity 65

goroutine 46 [running]:
github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient.func1(0x91b940, 0xc0171fe000, 0xc000266000, 0xc019a7a010, 0xe)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:88 +0x68a
created by github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:65 +0x18a

The other two crashes seem to be somewhat related. They seem to be happening because of closing the connection after the error in decodePacket: https://github.com/vmware/go-ipfix/blob/release-0.4.0/pkg/collector/tcp.go#L66
Need little more investigation on why this panic error: panic: runtime error: slice bounds out of range [:232] with capacity 95
This also needs an issue in go-ipfix. Will open one there and connect the issue to this one.

I0112 13:52:00.592685       1 flow-aggregator.go:27] Flow aggregator starting...
I0112 13:52:00.597287       1 tcp.go:38] Start tcp collecting process on [::]:4739
E0112 14:00:55.171757       1 tcp.go:90] collector only supports IPFIX (v10); invalid version 2923 received
panic: runtime error: slice bounds out of range [:232] with capacity 95

goroutine 53 [running]:
github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient.func1(0x91b940, 0xc000107258, 0xc0002d2000, 0xc0019812c0, 0xf)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:88 +0x68a
created by github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:65 +0x18a

different crash below
E0113 04:30:57.224860       1 process.go:195] Error when closing connection to collector: close udp <IP_ADDRESS>:51440-><IP_ADDRESS>:4739: use of closed network connection
panic: runtime error: slice bounds out of range [:249] with capacity 65

goroutine 46 [running]:
github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient.func1(0x91b940, 0xc0171fe000, 0xc000266000, 0xc019a7a010, 0xe)
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:88 +0x68a
created by github.com/vmware/go-ipfix/pkg/collector.(*CollectingProcess).handleTCPClient
	/go/pkg/mod/github.com/vmware/go-ipfix@v0.4.2/pkg/collector/tcp.go:65 +0x18a


[terra-avatar] [terra-image] Avatar to allow non square images.

Summary
Resolves #2259
Additional Details
I have added a prop imageFit in terra-image which would be used to apply object-fit styles. Also a polyfill object-fit-images is added to terra-image as object-fit property is not supported in IE. In Avatar I am just setting the imageFit prop as cover in TerraImage tag.

Tested: PR #2494
Resolves: Issue #2259
Reviewed:

updates Terra-Image to allow for object-fit styling.
updates Terra-Avatar and Terra-Profile-Image to always set fit to cover, as expected to best handle non-square images.

Fix before release:

https://github.com/cerner/terra-core/pull/2494#pullrequestreview-270750706 and https://github.com/cerner/terra-core/pull/2494#pullrequestreview-270754890

Marking as Verified by @neilpfeiffer, ready for release after adding fixes.

Pass

UX Review


Skills menu update and SkillUpdate function added

Still missing a few testings: casting and crafting using old menues.
Seems functional for now.

Is it a draft or functional/tested and ready to be merged?

Go ahead, everything seems correct on our tests.


[Request] Cendrillon palikA

+1 Request!

+1 Request!

+1

1 Request

+1 Request

Thank you :3


Adding a fork() function for Streams

In an application I've been working on, I've encountered a need to implementing a sort of MPMC functionality for futures.  The application produces an impl Stream that needs to be handed off to multiple consumers dynamically.  This seems like it could be very useful to include in the library itself, and I wanted to know what you thought about it.
In order to implement this functionality, I've been creating a new (tx, rx) = channel(0); to map it into the parent stream.   This essentially produces a "fork" stream that yields the same values as shown by the very basic code below:
// the new fork stream
let (tx, rx) = channel(0);
// the parent stream
let strm: BoxStream<BrokerResult, ()> = self.push_stream_recv.take().unwrap();

// wrap the fork sender in an option so we can move out of it to `send()` without issues
let mut tx_opt = Some(tx);
let new_strm = strm.map(move |msg| {
    // unfortunate workaround needed since `send()` takes `self`
    let mut tx = tx_opt.take().unwrap();
    tx = tx.send(msg.clone()).wait().unwrap();
    tx_opt = Some(tx);
    msg
});
//
self.push_stream_recv = Some(new_strm.boxed());
rx

This produces a graph that looks something like this:

Some important things to take into consideration:

If a bounded sender is used such as that in the example code above, the messages received on the fork rx will need to be consumed in order to drive the whole tree forward.  I've encountered issues with this in my application where when the tail sender is replaced in the struct after returning a fork to a client, the entire flow halts due to the messages not being consumed there.
Errors can occur during the transmission of ticks to the fork if the rx half of the fork is dropped by a client.  This will probably require error checking within the map() closure to avoid breaking the whole tree due to this.
There may be a better way to do this (creating true MPMC data structures that handle this internally and more efficiently) or you may not want to include this kind of functionality in the main library.

In any case, I'd love to hear what you think about this.

I'm working on a broadcast channel, which may be helpful: http://github.com/carllerche/futures-broadcast/

@carllerche looks really good so far!  I definitely think that some kind of MPMC should be added into this library one way or another; it has so many potential use cases.

This would probably have to be a different type since not all streams can fork (what if the value isn't Clone or Sync?) but it's quite useful.  You can look at MultiQueue for now, which can do this sort of broadcast.

If a bounded sender is used such as that in the example code above, the messages received on the fork rx will need to be consumed in order to drive the whole tree forward.

This can be really desirable behavior (except for the issues on drop and receiver churn, which any broadcast queue should handle). It keeps various parts of the system relatively in sync and keeps upstream producers from overwhelming only part of the system. Since it looks like you're using the queue for a trading system that last part is especially important if you ever put money into it, otherwise you'll just make nonsense trades.
Other than that, all of the error cases have to be handled by the queue itself for correctness so you shouldn't have to worry.

Whoa awesome, thanks for the link @schets! That looks like quite a thorough library :)

I'm not really sure if it makes sense to have a ForkableStream trait in futures, I don't see what it would add over allowing datastructures to simply broadcast to multiple Streams internally. Maybe there are use cases outside of broadcasting queue messages, or some waiting edge-case that I'm not aware of?
There might be an argument around allowing generics over ForkableStreams instead of just streams, but would that belong in futures?

Oh yeah the complications here in the various implementations I've seen have convinced me that we probably want to let this functionality bake outside the futures crate itself before trying to bring it in tree.

I'm going to close this in favor of the ongoing work (@carllerche's and @schets's libraries above) and it looks weighty enough that we likely won't move in this crate soon.


Location in chat header doesn't abbreviate well

v2.0.11 win7 64 bits
Fairfax, VA, USA -> Fairfax, VA,... (12 characters)
New Hampshire -> New... (I would expect the same 12 characters, like: "New Hampshir...")
Also, you can get +1 or 2 characters by moving text and icon a little bit to the left.

It's not going to be the same amount of characters because different characters have different widths... but New Hampshire looks to be overly truncated and we should investigate why.

Unfortunately, it looks like the way CSS truncates is that it avoids doing so mid-word. I think this is something we have to live with because the alternative is trying to find a lib that might do it differently and those are often times much less efficient, both in terms of DOM rendering and code complexity.
I'll look into removing that extraneous space to the right of the location icon, which seems to be a widespread issue.


change markers for versioning systems such as sd should be detected.

Sd change markers should be detected by typescript and have warnings just the way it detects issues for git change markers.
Expected behavior:
Have warnings
Actual behavior:
No warnings. Errors are ambigious.
e.g
>>>> ORIGINAL accessibilityTab.ts#2 ++++++++++++++++++++++++++++++++++++++++++++++++
console.log("y0")
==== THEIRS accessibilityTab.ts#3 ++++++++++++++++++++++++++++++++++++++++++++++++
console.log("boo")
==== YOURS accessibilityTab.ts ++++++++++++++++++++++++++++++++++++++++++++++++
console.log("yay")
<<<< END ++++++++++++++++++++++++++++++++++++++++++++++++

results in
 error TS1109: Expression expected.
 error TS1109: Expression expected.
 error TS1109: Expression expected.
 error TS1109: Expression expected.
 ...

If you are interested to send us a PR feel free to. I do not think anyone one core team will be doing this anytime soon, given that no one outside MS knows about sd.exe, and even MS is moving to git.

TIP: one can capture them as conflict markers in the scanner : https://github.com/Microsoft/TypeScript/blob/cb9be669ec79296ea2e4b42fb3bdbe4660ca6bca/src/compiler/scanner.ts#L514-L568 :rose:

I did some research. It seems the most used conflict marker are 7 characters. Git, svn, mercurial all use '<<<<<<<' (7) only sd uses '<<<<' (4). So 7 seems like an official standard. I am closing this because sd has a very small market share (only some projects inside MS). I'd rather file a bug on sd to have 7 chars in conflict markers.


"Failed to call service" error after home asssitant 2024.5.0

Describe the bug
If I select a mode (i.e. room, selection) and I click start, I receive the following error and the action doesn't start. It started when I upgraded to Home Assistant 2024.5.0

same here... came with the 2024.5.0 Update

Confirming this - is there any solution yet?

I swear this will be the last time I update home-assistant

I swear this will be the last time I update home-assistant

Don't blame HA for this - they change things to make it better - if HACS addons like this one break it is not their responsibility. The developer(s) of the addon need to update their stuff to follow new guidelines.
I wished that software like SPOOK would catch these errors in the automations - and inform me about it - so I can be more pro-active. In this case I caught it cause my vacuums didn't start as expected..
Still - not blaming HA for it - nor the developer team here - it just needs to be aligned with current requirements and good. It's a domino effect that is absolutely normal - I am in IT 25+ years and coded enough on top of it - this is normal, might have been announced a while back - but not everyone has the time to read up on all the changes and review code - I am actually glad that this project here exists and someone is taking the time to look into it.
We don't appreciate the work of the HA nor all the addon developers enough at all! Heck, we don't even really pay them a penny for the most part.
To the DEV team here - hope you can fix this! And Thank you for all the work and TIME you put in! We all really appreciate it!

Update the integration to the latest version.

Did you fix this in the 2.x versions as well? Seems like I have a 2.x installed and if I remember right it was because of the Dreame 10 or so having better support there...

I swear this will be the last time I update home-assistant

Don't blame HA for this - they change things to make it better - if HACS addons like this one break it is not their responsibility. The developer(s) of the addon need to update their stuff to follow new guidelines.
I wished that software like SPOOK would catch these errors in the automations - and inform me about it - so I can be more pro-active. In this case I caught it cause my vacuums didn't start as expected..
Still - not blaming HA for it - nor the developer team here - it just needs to be aligned with current requirements and good. It's a domino effect that is absolutely normal - I am in IT 25+ years and coded enough on top of it - this is normal, might have been announced a while back - but not everyone has the time to read up on all the changes and review code - I am actually glad that this project here exists and someone is taking the time to look into it.
We don't appreciate the work of the HA nor all the addon developers enough at all! Heck, we don't even really pay them a penny for the most part.
To the DEV team here - hope you can fix this! And Thank you for all the work and TIME you put in! We all really appreciate it!

I am not blaming homeassistant, I am blaming myself for being so eager to update without giving time to check if anything will break.. I agree with you


[Question] improved errors in production project

Is there anything like this in connect-rpc world?
Currently only grpc defined error can be returned in connectrpc.

Clients need to use string compare to match the underlying error.

The Connect protocol is designed so that it can be transcoded to and from the gRPC protocol. This means that we are limited to the error codes also present in gRPC.
However, Connect (and most gRPC implementations) support error details. You can arbitrary Protobuf messages to provide error details. You can find documentation here, and they are also covered in the protocol spec.


Fix test --coverage errors related to TS

also I took out all the pre-commit/format config from this branch. I think the best way is to fix this in another PR.

I hate when things in my machine works and in others doesn't... :(

ok I need a little help here. not getting too much progress :(
it is strange that in the circleci log we are getting the typescript help text and not locally?
if someone with more experience with circleci can help that would be great!. I'm sure is a really silly (and funny) error...

i noticed this: https://github.com/react-navigation/react-navigation-core/blob/master/.circleci/config.yml#L5
maybe using node 7 is causing any problem? I'm using 9.4.0 locally..

ok everything solved :)
the problem was that the tsconfig.json was listed in the .gitignore. I knew it was a silly error...

ok everything solved :)
the problem was that the tsconfig.json was listed in the .gitignore. I knew it was a silly error...

Finally, because of some updates to getChildEventSubscriber I needed to roll back to the JS version for now. there are some other files in TS and everything now it seams to work.
sorry for the mess with this PR, I need to properly setup my machine to be more reliable with the CI, a lot of trials and errors. or maybe I can learn a better way to maintain this contributions cleaner?
hope this now can be approved :)

ok let's try this again :) thanks @horacioh and @satya164!

@horacioh you forgot to fix this buggy regex: https://github.com/react-navigation/react-navigation-core/pull/8#discussion_r227164112

@horacioh - can you open a followup pr for that? thx 🙏

I can't get the example project running with typescript :( here's my attempt: https://github.com/react-navigation/react-navigation-core/tree/%40brent/attempted-example-fix-ts

checking it now @brentvatne

@brentvatne I got the example project working in your branch:
it appears that the dependencies we have listed in the react-navigation-corepackage.json file are not being installed in the example project. the two packages that are required and not installed in the example arepath-to-regexpandquery-string`.
let me dig dipper into why this two packages are not installed as a dependency in the example project.

Sorry I had to revert this change because I needed to get examples running again

maybe because the @react-navigation/core package is marked as devDependency inside the @react-navigation/native package?

Let me know if this is the problem and I can make a release of /native without it. Its funny how our real devDependencies seem to be the dependencies of the example project

I think this is the problem. I manually add it as a dependency and it was working correctly.
hope this helps :)

@ericvicenti do you want me to do a PR of this?

@horacioh - yeah that would be great! thanks

is the example working in master? its not for me. I tried to link the local packages to test my changes before pushing any change and now i got other errors :(
trying to resolve this issues before submitting another PR. sorry!

hey @brentvatne !
could you please check this? I think I got some progress on the TS migration.
cc @satya164 @ericvicenti


How about freezing the LiDAR stream?

Hello,
I find a trigger freeze_lidar_components in the config file. Have you performed the BEVfusion [the second stage] with the LiDAR stream frozen? Or freezing both LIDAR and camera stream and optimizing the fusion part only?

Hi, we freeze both LIDAR and camera stream and optimize the fusion part only.

I have some questions about the training strategy. Why did you choose to freeze other parts and only optimize the fusion module? Is it because the model may suffer from overfitting?
Additionally, why freeze the head part? In my understanding, the head part should also be optimized on the fused features.
Looking forward to your response. Thank you very much!


[Tagging] az vm nic update doesn't support tagging

This command only associates existing nic IDs with a VM, and thus should probably be called set rather than update. Tagging would need to (and can) occur using a call to az network nic update.

This is not an issue. PR #1421 renames vm nic update to vm nic set to reflect that it is not a traditional update mechanism and thus one would not expect to be able to tag NICs in this way.


Add maven to the default installed packages in the analyzer

The analyzer has Java installed, but not Maven. We should pre-install it.

This should be a matter of adding maven to the apt-get install command in this Dockerfile, and then testing to make sure it doesn't break anything.

I have created a PR for this #134. Open for feedback to make changes if needed.


JAMES-3867 Allow per IMAP server package specification

06:54:54,586 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.2:check (check-style) on project james-server-protocols-imap4: You have 1 Checkstyle violation. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.2:check (check-style) on project james-server-protocols-imap4: You have 1 Checkstyle violation.


cli(ticdc): Add cluster id for capture cli command

What problem does this PR solve?

Issue Number: close #7209
What is changed and how it works?
Add cluster id for capture cli command
[
  {
    "id": "245f9708-0203-4288-bb30-6621f94376ae",
    "is-owner": true,
    "address": "<IP_ADDRESS>:8300",
    "cluster-id": "default"
  }
]

Check List
Tests

Unit test
Integration test

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
`None`.

/run-all-tests

/merge

/run-kafka-integration-test
/run-integration-tests

/run-all-tests

Codecov Report

Merging #7210 (68f6ac8) into master (d8fff7a) will decrease coverage by 0.0208%.
The diff coverage is 73.9413%.

:exclamation: Current head 68f6ac8 differs from pull request most recent head d6ded76. Consider uploading reports for the commit d6ded76 to get more accurate results

Additional details and impacted files

Flag
Coverage Δ

cdc
67.1665% <82.3529%> (-0.0490%)
:arrow_down:

dm
51.8450% <ø> (+0.0075%)
:arrow_up:

engine
60.9259% <70.7207%> (+0.0678%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #7210        +/-   ##
================================================
- Coverage   59.6043%   59.5834%   -0.0209%
================================================
  Files           790        790
  Lines         91089      90990        -99
================================================
- Hits          54293      54215        -78
+ Misses        32051      32031        -20
+ Partials       4745       4744         -1

/run-integration-tests

/merge

/run-integration-tests
/run-kafka-integration-test

/merge


ugrep: 3.1.0 -> 3.1.7

Motivation for this change
Update to latest upstream release 3.1.7
Change log: https://github.com/Genivia/ugrep/releases/tag/v3.1.7
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 114142 run on x86_64-linux 1

1 package built:

ugrep


Error when starting windows 10

When starting windows I got an error (attached).
Expected Behavior
The app should start without errors.
Actual Behavior
Error when starting windows.
Steps to reproduce the behavior
Start windows.
Versions

Zazu: 0.3.2
OS: Windows 10 64-bit

It looks like you're starting zazu without internet access and it's trying to check if there is an update available.

It's possible! My internet is horrible in the last days.


mina daemon crashed while trying to start

I have issued below commas to start the mina daemon it crashed.
mina daemon --seed --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt --file-log-level Info -log-level Info --log-block-creation false --log-snark-work-gossip false --log-txn-pool-gossip false --metrics-port 9100 --discovery-keypair /home/ubuntu/keys/my-libp2p --generate-genesis-proof true --max-connection 100
I am using below public key :
B62qjFLrJjrt5fyyP2rRomUF7tYGhjJYRXLJhfvaPE6xRf6wXpLfN5d
below is the my daemon.json config file :
{
"daemon": {
"client-port": 1000,
"external-port": 1001,
"rest-port": 1002,
"block-producer-password": "****actual password ***",
"block-producer-pubkey": "B62qjFLrJjrt5fyyP2rRomUF7tYGhjJYRXLJhfvaPE6xRf6wXpLfN5d",
"coinbase-receiver": "B62qjFLrJjrt5fyyP2rRomUF7tYGhjJYRXLJhfvaPE6xRf6wXpLfN5d",
"log-block-creation": false,
"log-received-blocks": false,
"log-snark-work-gossip": false,
"log-txn-pool-gossip": false,
"peers": ["seed-one.o1test.net", "seed-two.o1test.net"],
"run-snark-worker": "B62qjFLrJjrt5fyyP2rRomUF7tYGhjJYRXLJhfvaPE6xRf6wXpLfN5d",
"snark-worker-fee": 10,
"snark-worker-parallelism": 1,
"work-reassignment-wait": 420000,
"work-selection": "seq"
}
}
crash log:
Coda daemon is booting up; built with commit "a42bdeef6b0c15ee34616e4df76c882b0c5c7c2a" on branch "master"
2021-05-07 16:09:04 UTC [Info] Removing lockfile for terminated process
2021-05-07 16:09:04 UTC [Info] Daemon will expire at "2024-12-10 14:00:00-07:00"
2021-05-07 16:09:04 UTC [Info] Booting may take several seconds, please wait
2021-05-07 16:09:04 UTC [Info] Using libp2p keypair private-key password from environment variable CODA_LIBP2P_PASS
2021-05-07 16:09:05 UTC [Info] Reading configuration files $config_files
config_files: [
"/var/lib/coda/config_a42bdeef.json",
"/home/ubuntu/.mina-config/daemon.json"
]
2021-05-07 16:09:05 UTC [Info] Initializing with runtime configuration. Ledger name: "mainnet"
2021-05-07 16:09:05 UTC [Info] Using the compiled constraint constants
2021-05-07 16:09:05 UTC [Info] Found genesis proof file at $path
path: "/home/ubuntu/.mina-config/genesis/genesis_proof_ef3659d87a794d5c0159273bc7e596fe7a92b766a0aeb4be3437f582e716697a"
2021-05-07 16:09:05 UTC [Info] Loaded ledger from $ledger_file and genesis proof from $proof_file
ledger_file: "/home/ubuntu/.mina-config/genesis/genesis_ledger_accounts_71d4f4a0e8c1f3e78760b989234760584969ea0144ed1a3057234f6f0e73621a.tar.gz"
proof_file: "/home/ubuntu/.mina-config/genesis/genesis_proof_ef3659d87a794d5c0159273bc7e596fe7a92b766a0aeb4be3437f582e716697a"
2021-05-07 16:09:05 UTC [Info] Using block producer keypair private-key password from environment variable CODA_PRIVKEY_PASS
2021-05-07 16:09:06 UTC [Info] Loading epoch ledger from disk: $location
location: "/home/ubuntu/.mina-config/epoch_ledger7fdd3b44-b0ce-3054-c897-ab00291374f3"
2021-05-07 16:09:06 UTC [Info] Loading epoch ledger from disk: $location
location: "/home/ubuntu/.mina-config/epoch_ledger029921c8-9e29-3744-3cfd-f466a9682600"
2021-05-07 16:09:06 UTC [Info] Starting node as a seed node
2021-05-07 16:09:06 UTC [Info] Setting current protocol version to "2.0.0" from compile-time config
2021-05-07 16:09:44 UTC [Info] Daemon started process of kind "Prover" with pid 359
2021-05-07 16:09:44 UTC [Info] Daemon started process of kind "Verifier" with pid 389
2021-05-07 16:09:44 UTC [Info] Registering async shutdown handler: "Close transition frontier, if exists"
2021-05-07 16:09:44 UTC [Info] Custom child process "libp2p_helper" started with pid 398
2021-05-07 16:09:44 UTC [Info] libp2p peer ID this session is $peer_id
peer_id: "12D3KooWPzaRDQzCDXLDWeZzFXnGNAz2neXZnJK4dAa8pfWByamL"
2021-05-07 16:09:44 UTC [Fatal] Unhandled top-level exception: $exn
Generating crash report
exn: {
"commit_id": "a42bdeef6b0c15ee34616e4df76c882b0c5c7c2a",
"sexp": [
"monitor.ml.Error",
[
"Failed to connect to libp2p_helper process",
"RPC #1 failed: "internal RPC error error: failed to parse multiaddr \"seed-one.o1test.net\": must begin with /""
],
[
"Raised at file "src/error.ml" (inlined), line 9, characters 14-30",
"Called from file "src/lib/gossip_net/libp2p.ml", line 148, characters 8-94",
"Called from file "src/deferred1.ml", line 17, characters 40-45",
"Called from file "src/job_queue.ml" (inlined), line 131, characters 2-5",
"Called from file "src/job_queue.ml", line 171, characters 6-47",
"Caught by monitor coda"
]
],
"backtrace": [
"Raised at file "src/error.ml" (inlined), line 9, characters 14-30",
"Called from file "src/lib/gossip_net/libp2p.ml", line 148, characters 8-94",
"Called from file "src/deferred1.ml", line 17, characters 40-45",
"Called from file "src/job_queue.ml" (inlined), line 131, characters 2-5",
"Called from file "src/job_queue.ml", line 171, characters 6-47"
]
}
2021-05-07 16:09:44 UTC [Warn] Shutdown before Coda instance was created, not saving a visualization
☠  Mina Daemon crashed.
The Mina Protocol developers would like to know why!
Please:
  Open an issue:
    <https://github.com/MinaProtocol/mina/issues/new>

  Briefly describe what you were doing and attach the crash report /home/ubuntu/.mina-config/coda_crash_report_2021-05-07_16-09-44.453173.tar.gz

Closing this one because of no activity for a long time and I hope that the most recent versions of Mina Daemon behave more stable for you.
Please feel free to report new issues should you face any.
Thank you.


Remove issuer MUST be set tests.

The issuer info is set by the actual issuer, so these tests seem
exactly backwards.

I see why you're saying these are strange tests.  Is a valid issuer property in an issued credential checked elsewhere?  Seems like maybe this was written poorly but that's what should be tested somewhere.

I see why you're saying these are strange tests. Is a valid issuer property in an issued credential checked elsewhere? Seems like maybe this was written poorly but that's what should be tested somewhere.

@davidlehn totally fine to have separate issues created to Do Better, but also not keen to block removing bad tests until better ones appear. Those can and should run down separate paths.


[Feature] Copy the query diff result as image and save to clipboard

PR checklist

[x] Ensure you have added or ran the appropriate tests for your PR.
[x] DCO signed

What type of PR is this?
Feature
What this PR does / why we need it:

Save query diff result as an image
Save the image into clipboard
Highlight the copied area when mouse hover the copy button

Which issue(s) this PR fixes:
RC-93
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

It seems that it requires every check view add the screenoshot logic. Could we add this feature as container?
<ScreenshotBox>
   <QueryDataGrid />
</ScreenshotBox>

Sure!

It seems that it requires every check view add the screenoshot logic. Could we add this feature as container?
<ScreenshotBox>
   <QueryDataGrid />
</ScreenshotBox>

Sure!

Here is the example
https://github.com/DataRecce/recce/pull/106

Ultimately, I decided to wrap the  component by .
The screenshot will only take on the  component.
Due to the  having its scrolling logic. The header will keep showing on the top when the user scrolls the table.
If we use a  or  component to wrap up the  component, scrolling logic will be running on . This means the table's header won't be kept on the top of the screen.
When users take a screenshot, keeping the header on the top of the table will make the screenshot more readable.


Added ANU team page in docs.

I have messed up this pull request and am going to close without a merge. :)


structural changes

In my opinion “using mods” and “making mods” is bad English. Writing the whole index in lowercase is something I wouldn’t recommend either. It looks incompetent.  You need to inspect when implementing a 3rd party modification and when updating, to troubleshoot issues. But you also need to inspect when creating modifications. Like the whole installing guide it’s a basic skill. Splitting the guide in basics/advanced makes it easier distinguishing essential topics from more dedicated ones. Hope this makes sense.
We should refrain from creating too many categories and subcategories, certainly not for a single topic. It looks questionable and only adds to the general confusion.
The only thing I did with this branch was adding the advanced folder,  changing the using-mods folder to basics and editing the README accordingly.

Thanks!


libc: implement vscanf()

This was originally added as a ticket under POSIX, but vscanf() is not a POSIX function. It is from C89.
https://en.cppreference.com/w/c/io/vfscanf
The expectation from the POSIX API is that this function is implemented as part of whatever C library is in use.

Hi, just wondering if there has been any progress made on any of these libc functions, or am I all good to try to implement some of these myself?

@CiaranRoche1 - same status as in #66949 I would guess. Help is always appreciated 🙏


Switch from Cachix to Magic Nix Cache

This seems a more appropriate way to cache derivations which should just work with github.
Should hopefully just work for forks as well, as otherwise they wouldn't have
the secret we're using, which is actually currently tied to my account and
that is less than ideal.
Description

Motivation and Context

Regression

How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added unit tests to cover my changes.

bors merge

bors merge


Don't Check for BOSH Availability when running the addon Hook

Instead, we need a new helper, need_bosh or i_need_a_bosh or bosh_me_please that does the validation.
It should also use the env vars from the previous.
This could also just be put into the bosh() helper, as a one-time check.

Fixed in 232102b


Golang support?

Planning to build golang support ? 🙏

I have no plans to add Golang support and @nikhilkalige is not activity developing new functionality as well. The problem with adding new languages is that they often have many corner cases you have to think of and are therefore hard to maintain. Also I have no experiences with Golang and had to dig into the language itself first.
If some one else wants to implement this, I am happy to help and answer questions. If you're interested in doing so, I recommend looking into #138. In this issue I already gave an overview on how to add a new language.
Adding Golang support was also discussed in #137.


Refactor String#replaceAll

If we repeatedly call String#replaceAll, we internally repeatedly call the regular expression pattern compilation every time as following:
    public String replaceAll(String regex, String replacement) {
        return Pattern.compile(regex).matcher(this).replaceAll(replacement);
    }

The modifications are to keep the compiled pattern.
Therefore, compiling a relatively expensive regular expression pattern does not have to be done every time.

While I don't see an issue with it, it's not really a performance issue since it's in a constructor.

@spencergibb Since there are two calls to replaceAll in the constructor, it causes Pattern.compile to be called twice and iteration to be repeated twice.

@ryanjbaxter @spencergibb  Thanks


Add tools to verify (and fix) next_sequence_numbers for registrations.

ready for review @rudigiesler @KaitCrawford

I've also asked WCL to see if they can have a look.

@gsvr ready for review again

@gsvr ready for review again.

@gsvr how would I recognise post-birth registrations? Would like to raise an error for those specifically.

ah registration.stage has that information.


add comments to image build process code

Signed-off-by: Jonathan Holloway<EMAIL_ADDRESS>Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
What is it?

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Documentation update
[ ] Tests update
[ ] Refactor

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[x] I run go fmt ./... to check that my code is properly formatted
[x] I run go vet ./... to check that my code is free of common Go style mistakes

Codecov Report

Merging #754 (4244c5a) into main (05b4b30) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #754   +/-   ##
=======================================
  Coverage   31.27%   31.27%
=======================================
  Files          44       44
  Lines        4704     4704
=======================================
  Hits         1471     1471
  Misses       3030     3030
  Partials      203      203

Impacted Files
Coverage Δ

pkg/services/images.go
17.97% <ø> (ø)

Continue to review full report at Codecov.

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


Manually inline a subset of interactive examples

Allow us to evaluate the effect of inlining in terms of real user performance
Acceptance criteria

[x] All specified interactive examples are inlined
[ ] Analytics are being recorded for the IEs

Tasks

[x] Resources for IEs are also inlined or are hosted within kuma without conflicts
[x] Inlined on:

[x] Array/forEach
[x] Array/map
[x] Array/filter
[x] Array/find
[x] Array/Reduce
[x] Array/splice

Resources

bug 1504246
Test plan

Slight correction to the pages we'd have this on. The array overview page doesn't have an interactive example, I missed that earlier. These pages together have about 50k/page views per day, so we should see results within days.

We're getting a similar number of events on the Array pages today as we did yesterday, so this code appears to be working.
I'd like to track the data review and next actions as an issue for the next sprint, so that we can count this as done for sprint 2.


Access data being duplicated when passing column data to export-excel

I am using the following function to pull the data from access:
Function Get-AccessData {
    param ($sql)

    Try {

        #Connection
        $Connection = New-Object -TypeName System.Data.OleDb.OleDbConnection

        #Connection string
        $Connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= $($Settings.files.access_data)"

        #create command and fill dataset
        $ConCommand = $Connection.CreateCommand()
        $ConCommand.CommandText = $SQL
        $OAdapt = New-Object -TypeName System.Data.OleDb.OleDbDataAdapter $ConCommand
        $DS     = New-Object -TypeName System.Data.DataSet
        $OAdapt.Fill($DS) | out-null

        return $DS
    }
    Catch {

        Set-Output "[!] Access database connection failed" -colour RED -logfilepath $log_prerequisites
        Set-Output "    Ensure that Microsoft.ACE.OLEDB.12.0 provider is installed" -colour RED -logfilepath $log_prerequisites
        Set-Output "$_" -logfilepath $log_prerequisites
        break
    }
}

I am then calling the fucntion like so:
$JobTypes2 = ((Get-AccessData -sql "SELECT DISTINCT positiontype, NULL as TRISJobTypeID from JobOrder").tables)

and exporting it to excel using Export-Excel
$JobTypes2.Columns.Table | Export-Excel $mFile_JobType -Autosize -TableName "tblMapping" -WorkSheetName "Mapping" -ExcludeProperty ItemArray, RowError, RowState, Table, HasErrors -Title "Mapping File"

When i look at the file the results are duplicated for some reason, piping the variable directly into Format-Table works as expected and returns the correct results.

Can't really say. Does Get-Service | Export-Excel work? Is the data duplicated?

$JobTypes2.Columns.Table   is your problem.  You will get the table repeated as many times as  you have columns.
$JobTypes2 = ((Get-AccessData -sql "SELECT ...").tables[0])
$JobTypes2 | Export-Excel

works, for large data sets this is faster.
Send-SQLDataToExcel -DataTable $JobTypes2 -Path test.xlsx -Show

$JobTypes2.Columns.Table is your problem. You will get the table repeated as many times as you have columns.
$JobTypes2 = ((Get-AccessData -sql "SELECT ...").tables[0])
$JobTypes2 | Export-Excel

works, for large data sets this is faster.
Send-SQLDataToExcel -DataTable $JobTypes2 -Path test.xlsx -Show

Thankyou, this worked.


How do you set a timeout for a client connection?

This question is very close to mine and I'm trying to follow it's advice:
https://github.com/redboltz/mqtt_cpp/issues/610#
I have an issue with AWS IoT Core that came up in testing, where it waits almost twenty minutes to tell me that my address range for the port is incorrect. So, the process waits at client_mqtt->connect(ec) below until Amazon finally sends the error.
I'm trying to follow the advice in #610, but I have the problem that my timer doesn't run until ioc.run() and that's after my call to connect. So, I think I'm missing something important.
Is there an easy way to set a timeout on the call to connect? I'm using the sync client.
Where client_mqtt is:
client_mqtt = MQTT_NS::make_tls_sync_client(ioc, broker_url, broker_port, mqtt::protocol_version::v3_1_1);

Here's the relevant code:
boost::asio::deadline_timer timer(ioc, boost::posix_time::seconds(30));
            timer.async_wait([this](const boost::system::error_code& error) {
                if (error != boost::asio::error::operation_aborted) {
                    spdlog::warn("[MQTT {}] Timeout connecting to broker.", broker_id);
                    client_mqtt->disconnect();
                }
            });
            mqtt::error_code ec;
            client_mqtt->connect(ec);
            timer.cancel();
            if(ec) {
                // error handling removed for posting here...
            }
            spdlog::info("[MQTT {}] Client entering ioc run loop.", broker_id);
            ioc.run();

I think that you need to use client instead of sync_client.
On sync_client, there is no way to timeout because boost::asio doesn't support timeout.
connect() calls
https://github.com/redboltz/mqtt_cpp/blob/e0d35ca6c90bfdf7c0af17b66efcee356c6c8cf7/include/mqtt/client.hpp#L1237-L1248
internally.
First, call resolve().
https://www.boost.org/doc/libs/1_75_0/doc/html/boost_asio/reference/ip__basic_resolver/resolve.html
There is no timeout version.
Then, call connect()
https://www.boost.org/doc/libs/1_75_0/doc/html/boost_asio/reference/connect.html
There is no timeout version, too.
I found a related Q&A on the stackoverflow.
https://stackoverflow.com/questions/32692195/set-timeout-for-boost-socket-connect
It seems that the answer uses async_connect().
Using client instead of sync_client is pretty difficult.
https://github.com/redboltz/mqtt_cpp/wiki/Sync-vs-Async#client-expert-only
You need to avoid sync sending API calling during async send processing.
You can call client::async_connect() instead of sync_client::connect().
You cannot call sending API until connack handler is called.
And then, you can call only sync APIs.
I'm not 100% sure but I think that it works.

@redboltz Thank you. I encapsulate the sync client in a class of my own. In the end, I implemented a std::future to abort the connect in the layer above that owns my class. What I did works, but it's not very elegant. Considering the pitfalls above, would you consider adding a timeout feature for connect in the future?

Considering the pitfalls above, would you consider adding a timeout feature for connect in the future?

If boost asio's connect() and resolve() would support timeout, then mqtt_cpp would support the timeout.

I found https://www.boost.org/doc/libs/1_75_0/doc/html/boost_asio/example/cpp11/timeouts/blocking_tcp_client.cpp
I think that it is helpful to implement timeout version of connect() for sync_client.
I will try it when I have a time. Unfortunately I don't have much time now.


How to start service properly?

I am using unoconverter in my lua web project to convert files on demand. What is the proper way of starting the process and releasing it from the memory?
By now I have just created a systemd unit service and made it started on boot? Are any other ways of starting the service when needed and releasing it from memory when finished in order not to keep it in memory?
Thanks!

There is no problem way, that entirely depends on context. You can use systemd, that's fine. Or any other way to start a service. We have been using supervisors previously, I don't know what we are using right now.
Of course, the simplest way of starting it and then releasing it from memory is to just start it with unoserver and then pressing CTRL-C when you are done.

There is no problem way, that entirely depends on context. You can use systemd, that's fine. Or any other way to start a service. We have been using supervisors previously, I don't know what we are using right now.
Of course, the simplest way of starting it and then releasing it from memory is to just start it with unoserver and then pressing CTRL-C when you are done.

Thanks for your reply! Actually, I liked the way how obsolete unoconv works: when called from script it just automatically starts, run the job and quits, so there's no need to have additional service running. However, in case of errors (eg mismatch in filters it may easily stuck). Is it possible to add this layer of self-demonisation upon demand?
I was looking for a docker solution, however, again unoconv is much easier and helpful, while unoserver demands data volumes to be exported.
Manual initiation and breaking is not my way definitely, at the same time to keep LibreOffice constantly running and occupying resources is also exhaustive approach, IMO... :/

The thing is that both unoconv and unoserver only uses Libreoffice to do the converting. If you don't start a server you don't need unoconv or unoserver, you can just use Libreoffice. So I intentionally did not include such a feature, because it just means people used unoconv when they didn't need to, and had problems that would otherwise not have had.
So if you like that way of using unoconv, just use Libreoffice directly.

The thing is that both unoconv and unoserver only uses Libreoffice to do the converting. If you don't start a server you don't need unoconv or unoserver, you can just use Libreoffice. So I intentionally did not include such a feature, because it just means people used unoconv when they didn't need to, and had problems that would otherwise not have had.
So if you like that way of using unoconv, just use Libreoffice directly.

Well, couldn't use it from web script, and don't know why it is not working, but unoserv/unoconv.
Meanwhile, Is that possible to create a unoserv docker which is not demanding binding volumes?

I don't know enough about docker to even know what that means.


Url use url encoded queries

Makes Url to save url encoded values
Exposes Encode and Decode as helper static methods
Makes Encode method to support getting extra symbols to skip encoding them to enable service-specific encoding for each url part (where path, query and host requires different encoding)
fixes: https://github.com/Azure/azure-sdk-for-cpp/issues/592

@vhvb1989 Can you make EncodePath public?

Is there an issue tracking why the CI leg cpp - storage - ci (Build GenerateReleaseArtifacts)  is failing?
https://dev.azure.com/azure-sdk/public/_build/results?buildId=549259&view=logs&j=a129effc-2dd1-54d1-fb5a-ad7bdc0e851d&t=619d3ee0-51fe-5b36-f7ec-da0e0c5252d8&l=19
cmake --build . --target azure-storage-common-docs
========================== Starting Command Output ===========================
"C:\windows\system32\cmd.exe" /D /E:ON /V:OFF /S /C "CALL "D:\a\_temp\02c3688d-6c81-46bc-9886-6f5ded41b393.cmd""
Microsoft (R) Build Engine version 16.7.0+b89cb5fde for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

MSBUILD : error MSB1009: Project file does not exist.
Switch: azure-storage-common-docs.vcxproj
##[error]Cmd.exe exited with code '1'.
Finishing: Generate docs (azure-storage-common-docs)

It’s failling in the PR because CMake storage project is disabled until storage team adapts the breaking changes from CORE and re-enable the project.
The fail is because that CI step is expecting storage project to be there.
Should we take care about PR – CI ?  they can’t be merged until all checks passes
From: Ahson Khan<EMAIL_ADDRESS>Sent: Wednesday, September 23, 2020 2:52 PM
To: Azure/azure-sdk-for-cpp<EMAIL_ADDRESS>Cc: Victor Vazquez<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Azure/azure-sdk-for-cpp] Url use url encoded queries (#598)
Is there an issue tracking why the CI leg cpp - storage - ci (Build GenerateReleaseArtifacts) is failing?
https://dev.azure.com/azure-sdk/public/_build/results?buildId=549259&view=logs&j=a129effc-2dd1-54d1-fb5a-ad7bdc0e851d&t=619d3ee0-51fe-5b36-f7ec-da0e0c5252d8&l=19https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fazure-sdk%2Fpublic%2F_build%2Fresults%3FbuildId%3D549259%26view%3Dlogs%26j%3Da129effc-2dd1-54d1-fb5a-ad7bdc0e851d%26t%3D619d3ee0-51fe-5b36-f7ec-da0e0c5252d8%26l%3D19&data=02|01|victor.vazquez%40microsoft.com|8178429f68154eb651ae08d8600adfe9|72f988bf86f141af91ab2d7cd011db47|1|0|637364947112024082&sdata=fFMxwa8fJ9kwIB5l%2FYys1UYSshXR%2FUgZEu5O8EjOxWk%3D&reserved=0
cmake --build . --target azure-storage-common-docs
========================== Starting Command Output ===========================
"C:\windows\system32\cmd.exe" /D /E:ON /V:OFF /S /C "CALL "D:\a_temp\02c3688d-6c81-46bc-9886-6f5ded41b393.cmd""
Microsoft (R) Build Engine version 16.7.0+b89cb5fde for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
MSBUILD : error MSB1009: Project file does not exist.
Switch: azure-storage-common-docs.vcxproj
##[error]Cmd.exe exited with code '1'.
Finishing: Generate docs (azure-storage-common-docs)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-sdk-for-cpp%2Fpull%2F598%23issuecomment-697991541&data=02|01|victor.vazquez%40microsoft.com|8178429f68154eb651ae08d8600adfe9|72f988bf86f141af91ab2d7cd011db47|1|0|637364947112024082&sdata=4lWl%2BeeW22WEppkL0WQp2n5ElTv%2FkW3xOwzPmWTMKsI%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAFYXR2OKORBWRRFP6YKKT6DSHJUXJANCNFSM4QXXFBFA&data=02|01|victor.vazquez%40microsoft.com|8178429f68154eb651ae08d8600adfe9|72f988bf86f141af91ab2d7cd011db47|1|0|637364947112034074&sdata=ng%2BEwGbuihryhRQhKrX0HK4v9oe%2BpT4Lk74S448g%2Bb4%3D&reserved=0.

Since there are more changes that need review, especially to get CI green, removing the auto-merge label.

storage blobs changes are completed.
Now only missing Storage Files Datalake. (disabled from project until it gets updated).
@katmsft

/check-enforcer override

/azp where

/azp list

to be continued and merged from
https://github.com/Azure/azure-sdk-for-cpp/pull/730


Clear activity.id before sending in BotFrameworkAdapter.OnSendActivities

Fixes https://github.com/microsoft/botbuilder-dotnet/issues/2690
and partly
https://github.com/microsoft/botbuilder-dotnet/issues/2689

Pull Request Test Coverage Report for Build 91712

0 of 0   changed or added relevant lines in 0 files are covered.
115 unchanged lines in 7 files lost coverage.
Overall coverage increased (+1.02%) to 76.581%

Files with Coverage Reduction
New Missed Lines
%

/libraries/Microsoft.Bot.Builder/Adapters/TestFlow.cs
1
77.17%

/libraries/Microsoft.Bot.Builder.Dialogs/Prompts/OAuthPrompt.cs
1
54.8%

/libraries/Microsoft.Bot.Builder/Inspection/InspectionMiddleware.cs
1
78.89%

/libraries/Microsoft.Bot.Builder.Azure/CosmosDbStorageOptions.cs
2
50.0%

/libraries/Microsoft.Bot.Builder.Dialogs/ObjectPath.cs
2
80.15%

/libraries/Microsoft.Bot.Builder/MemoryTranscriptStore.cs
2
86.09%

/libraries/Microsoft.Bot.Builder/BotFrameworkAdapter.cs
106
40.66%

Totals

Change from base Build 91684:
1.02%

Covered Lines:
5873

Relevant Lines:
7669

💛  - Coveralls

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Integration.AspNet.Core.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Testing.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.6.3
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Streaming.dll compared against version 4.6.3


Deleted images are still posted in activity pub

An image that was uploaded and embedded once in an article and deleted from that article afterwards (though not from the media library) is still posted as attachment.

This is hard to fix, because otherwise I have to parse the post-HTML for image URLs that are not emojis...


WIP: Enable precompilation, bump Julia version requirement to 0.4

This modifies the internals to allow for package precompilation. Due to some of the necessary changes (e.g. we can no longer use const pointers), this is a breaking change, though hopefully the "high-level" interface should still work.
This also changes the library search functionality so that we no longer need to use Pkg.build.

Okay, I'm fairly happy with this (the AppVeyor failure is unrelated).
@randy3k any thoughts?

It is a great step. Thanks @simonbyrne.
I don't mind merging this to the master.
As I don't have much experience with the pre complication thing.
I am extremely busy this week, will check it out this weekend.

I've tagged a last version for 0.3, so I'll merge this soon.


Add connection on user reply to some message

Blocked by: #79
If some one sending messages replying to any message in chat - we should be able to see it in UI after message uploading

How should it looks like? How it will work with lazy message loading feature?


Any way to search blockchain for blocks containing certain text?

I'm looking to use my blockchain to store a human-readable string and a corresponding hash and was wondering if there was a way to query for strings that match my query and return the corresponding hashes.
I'm new to Embark though and not totally sure how to achieve this. Thanks in advance!

(Not tested)
pragma solidity ^0.4.11;
contract Example {
    mapping(bytes => uint) private index;

    function add(string key)
    {
        index[bytes(key)] = 1;
    }

    function get(string key)
    {
        return index[bytes(key)];
    }

Thanks @juharris - that actually gets me quite close.
A little background on what I'm trying to do exactly: I want to save large json objects in ipfs and then I was thinking I would store a small, searchable bit of each object along with the ipfs key for that object, in the blockchain so I can find it. For instance, I would want to find all the keys that contain this string in the json object: "siggs2000". And have it return the keys (that happen to be the keys for the ipfs object of each result)
Is that something that can be done? Your example has me on the right track, I think, but still a bit stuck...
Thanks again!

Instead of uint for the value type in the mapping, I think you can use string for the IPFS key.
However, you should probably use string[] as the value type in case many objects in IPFS hold that key.

Thanks! I think this did the trick. I'll mark this as closed


Panic with malformed ntfs in non_resident_value_data_and_position

Hello, I started fuzzing the crate and found a lot of crashes (panics) and infinite loops. A lot of the panics are caused by unsafe use of [] slice operator, sometimes it is out of bounds, some times its a range slice which is not valid like [start..end] with start=320 and end=307. I'm gonna try to fix all the panics and write more safe rust code, but I'd like your opinion and if you have a prefered version of how you want to deal with it.
Well, for an example, here is the first bug:
https://github.com/ColinFinck/ntfs/blob/9348d729bcefe0b9473d29b8d7972d5e4038c910/src/attribute.rs#L281-L289
In this lines with the given binary NTFS test02.zip it panics because start is equal to 320 and end to 307 so the range is not valid. I don't understand the deeper problem here but can give a quick fix like this:
pub(crate) fn non_resident_value_data_and_position(&self) -> Result<(&'f [u8], NtfsPosition)> {
    debug_assert!(!self.is_resident());
    let start = self.offset + self.non_resident_value_data_runs_offset() as usize;
    let end = self.offset + self.attribute_length() as usize;
    let position = self.file.position() + start;
    if let Some(data) = &self.file.record_data().get(start..end) {
        Ok((data, position))
    } else {
        Err(NtfsError::MissingIndexAllocation {position})
    }
}

I also don't know which NtfsError to use, I put MissingIndexAllocation here because that was an easy one and fairly accurate.
I have the PR ready with the the changes induces by the Result in the return of the function.
Thanks for your time

Hey @Arthur-PI! Thank you for your fuzzing efforts and for opening this bug report. This is a very good catch!
When writing the ntfs crate, my style was to use the [start..end] range slice only when start and end have already undergone extensive validation and are safe to use. An example for this style is https://github.com/ColinFinck/ntfs/blob/9348d729bcefe0b9473d29b8d7972d5e4038c910/src/attribute.rs#L249 in the same file.
This is safe, because start and end have already been checked in validate_name_sizes before: https://github.com/ColinFinck/ntfs/blob/9348d729bcefe0b9473d29b8d7972d5e4038c910/src/attribute.rs#L387-L407
If validation fails, this function also returns a precise error that pinpoints to the exact error type and location in the filesystem.
Offset and length are not necessarily checked and reported individually. Looking at the code again, I also found places where start and end are put into a slice.get(start..end) call, and a single error is returned if get doesn't yield a result: https://github.com/ColinFinck/ntfs/blob/9348d729bcefe0b9473d29b8d7972d5e4038c910/src/index_entry.rs#L143-L148
So as you see, there are currently multiple ways to deal with these cases, with room for improvement/unification.
As you ask for my preferred version to deal with such cases:

Check if there is a suitable error variant. Don't hesitate to add one. Exact error messages are way better than a single message reused for multiple cases.
In this case, NtfsError::MissingIndexAllocation is a specific error when an $INDEX_ALLOCATION attribute was expected but not found. It's unrelated to the reported problem.

Changing [start..end] to .get(start..end) is also how I would fix this particular problem.
One could also check start and end individually, like it's done in validate_resident_value_sizes, but I'd say it's too easy to miss a check here.

Add an error variant InvalidNonResidentValueDataRange, with fields position, range, and size, and return that as the specific error for this case.
Use self.position() for the position field, start..end for the range field, and self.file.ntfs().file_record_size() for the size field. This gives all important context to understand and pinpoint the error.
Doing it like this is also 100% consistent with what's done for slice.get(start..end) in index_entry.rs.

Use .get(start..end).ok_or(.....)? instead of an if-else block.
This doesn't add an indendation level for the happy case, and therefore scales better if we later need to introduce another check with early return in case of an error.

Again, thanks a lot for your help with this!

Thanks you for this very complete response, those explanations are really helpful 👍🏼.
So I've taking into account what you've said and I made the fix accordingly, here is the new version.
pub(crate) fn non_resident_value_data_and_position(&self) -> Result<(&'f [u8], NtfsPosition)> {
    debug_assert!(!self.is_resident());
    let start = self.offset + self.non_resident_value_data_runs_offset() as usize;
    let end = self.offset + self.attribute_length() as usize;
    let position = self.file.position() + start;
    let data = &self.file.record_data().get(start..end).ok_or(
        NtfsError::InvalidNonResidentValueDataRange {
            position,
            range: start..end,
            size: self.file.record_data().len(),
        },
    )?;
    Ok((data, position))
}

With this new error:
/// The range of non resident value data when slicing is invalid
InvalidNonResidentValueDataRange {
    position: NtfsPosition,
    range: Range<usize>,
    size: usize,
}

Now I have fix for 8 bugs similar to this one, do you prefer one PR for each fix or one big PR with on fix per commit. As you wish. I'll also provide you all the test files that create those crashes (I'll assign a test case by commit) if you want do dig a little bit in why this happens and if the problem is deeper in the parsing process.
Thank you for your work and help.

@Arthur-PI Code looks good. Note that the /// comment for an error variant is parsed by #[derive(Display) from displaydoc::Display, which is why it contains formatting strings for all fields. Please take care of them as well, so that the context information in the error variant is actually printed.
As we're working asynchronously and I'll be the only one reviewing your PR(s), I think that a single PR with one fix per commit is the best here. Thanks for referencing the test file in each commit - that makes it very easy for me to follow what you've found :)

Fixed in #23


Errbit - Colombus(freecen2) - undefined method `unique_forenames' for nil:NilClass

This may have been caused when the rake task that collects 'names' for the Records displays was not running nightly for a few days. I believe this has now been resolved.
I will attempt to add code to the Records displays to trap that situation so that it does not generate a NilClass error.
@Vino is there an easy way that I can check that the overnight rake tasks have run each day?

Tested - all seems ok ie no impact on existing functionality


enable loading of pretrained model for soft-fusion

enable loading of pretrained model for soft-fusion

@rginjapan looks good, thanks for the PR. The only thing is, that you need to check if the fusion-net is not just concatenation, since in this case there are no parameters to load. So plz add an if-case checking for cat-fusion.

@rginjapan looks good, thanks for the PR. The only thing is, that you need to check if the fusion-net is not just concatenation, since in this case there are no parameters to load. So plz add an if-case checking for cat-fusion.

Plz check update.


Tape drive icon has a parsing issue

https://github.com/vmware/clarity/blob/5d12d4beffca7be491dcf4e9b6027b5e7b94dcfd/src/clr-icons/shapes/technology-shapes.ts#L1299
There is missing whitespace before the class= attribute.

Thanks @jenil


Merging multiple coverage files into one

Current spoon runner version has the capability to merge multiple coverage files generated from multiple devices into one file merged-coverage.ec.
This functionality is useful when a user has provided the option like shard = true to divide the whole test suite to run on multiple devices and getting different coverage files. Now spoon plugin is able to merge all these coverage files and save the merged file as {spoon output directory}/coverage/merged-coverage.ec.

Thanks @jainsahab !

@jainsahab Thanks for this pull request. I was waiting for this feature for a long time. @roman-mazur Any idea when we are releasing the plugin.


Add osx build.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


parseStackClass - Fixed not properly handling nested method and function calls.

Hello
This further improves on my previous improvements to parseStackClass by properly stripping the content inside parantheses if there are nested method or function calls. The regular expression choked on this [1], causing tooltips and alt-clicking to fail.
[1] https://github.com/hotoiledgoblinsack/php-autocomplete-test/blob/943446f06ea58c61b3a09ad689d8ff5d1bb35ffa/src/TestNamespace/SomeClass.php#L311

Hello,
I'm not home (on holidays), I'll review it september 14th sorry.
Thank you for your help !
Peekmo

No problem, I'm just creating all these pull requests so you can review them as soon as you have time, no pressure intended, thanks!


feat: add support to select multiple cred-def and connections for verification(FE)

[ ] Update UI to multi select connections functionality while creating proof requests.
[ ] Update UI to select multiple schema while creating proof request.
[ ] Update UI to select multiple credential definitions while creating proof request.
[ ] User should be able to select attributes while sending proof requests for each connection Id.
[ ] User should be able to generate self-attested proof request

Figma design is pending

This is duplicate of task https://github.com/credebl/platform/issues/925


add a NeurIPS 2023 paper

Please modify the name of this pull request as previous formats in this repo, then we will merge this PR.


Can not implement with react-native 0.29.0 - new app template structure

Apparently react-native 0.29.0 requires that we no longer pass this to the constructor :
https://github.com/facebook/react-native/releases/tag/v0.29.0

Plugins which pass activity reference in the constructor need to be updated to extend ReactContextBaseJavaModule use getCurrentActivity to get the activity reference. This change is backward compatible.

The dependency is now initiated in a MainApplication.java file. Ugh.

Same probleme here, any solution ?

I haven't upgraded to RN 0.29 yet, so I'm not familiar with the issue yet. Does this mean that CrosswalkWebViewPackage just needs to extend ReactContextBaseJavaModule, and instead of calling new CrosswalkWebViewPackage(this) as specified in the readme, you'd call new CrosswalkWebViewPackage() and createViewManagers in CrosswalkWebViewPackage will call getCurrentActivity and pass the activity to new CrosswalkWebViewGroupManager as is?

I think that's pretty much the idea. I've tried on my side but couldn't achieve it as I'm not expert in Java and I could'nt make CrosswalkWebViewPackage extend ReactContextBaseJavaModule as it then seemed to require different constructor arguments.
I anybody knows how to achieve this, I'm very interested ^^

I got the same problem，expect to upgrade to 0.29.

main points about 0.29 : discouraging passing of activities in constructors, recommended way to access activities in Modules is getCurrentActivity(), and viewmanagers cannot access activity, although a public api landed in reactContext giving access to currentActivity in 0.31rc
https://github.com/facebook/react-native/commit/760656461197605ee26769ed73989f78e4753038
detailed perspective : https://github.com/facebook/react-native/commit/49f20f41546e3ba8e7fe43c84c4c701684d0434d#commitcomment-18177294

Pending #26 to fix this, thanks to @zaynyatyi
I'll review it tonight and hopefully be able to close this issue. Any thoughts from anyone on it?

Closed by #26, released in 0.3.0. Thanks!


does not work on cell phones

broken links on cell phones?

fixed:
template: '',
resolution: 'low_resolution',
limit: '20',


Incorrect modifyPosition causes performance issue in monaco-editor.

l

Does this issue occur when all extensions are disabled?: Yes/No

That issue first happened in<EMAIL_ADDRESS>and it still exist in latest version.
Here is the reproducible demo. Scroll to 100000+ line,click and change cursor.
<EMAIL_ADDRESS>I recorded a perfomace in devtools and saw a long task layout.

The 0.35.0-dev.20221019 version worked well.
So I tried to find the difference between these two versions and finally I found it out. Here is the diff.

I think the problem is in this [modifyPosition function] (https://github.com/microsoft/vscode/compare/9d3fbb3d9a50055be0a8c6d721625d02c9de492d...929c645c9a3727541c8fb30f4d62765f5c672ff9#diff-61400b9c77c0373aa731ab138cf1b2e4345a47991855da838fa4074d031e92f4) which modifies a ViewPosition and returns a ModelPosition but ViewPosition and that will get a huge different lineNumber so that the above performance issue happened

The following is the right one, isn't it? Maybe I can make a PR.

😁 Hopefully @alexdima could give some opinions

The problem still exists.

So I tried to find the difference between these two versions and finally I found it out. Here is the diff.
@alexdima Can you take a look at this issue? Thank you.
Currently skipping problematic logic through accessibilitySupport: "off"

Thank you! You're absolutely correct, modifyPosition was returning model positions instead of view positions.


internal/providers/qemu: check for both coreos and flatcar fw_cfg

For backwards compatilibity, we need to check for fw_cfg for both coreos and flatcar.

Updated PR


Setup prebuild

First of all love the repo always looking for better performance. To speed up installs and easy the barrier to use I was wondering if you had considered using https://www.npmjs.com/package/prebuild
Which compiles binaries on a CI and then uploads them to github.
I would be happy to do a PR for travis-ci for Linux and OS X and appveyor for Windows

Hi, I have heard things about Travis and I did some testing but I was not very satisfied with the old version of Ubuntu (or Ubuntu at all, really). But I guess that doesn't matter. Currently I build things manually so I would appreciate any help on getting a working Travis set-up. Could you try and fork the repo and test on your fork so that we don't end up with 6 test commits?

Sure no problem I can just test the fork under an npm scoped package did you want me to setup appveyor also?

I don't know what appveyor is? Seems like Travis for Windows? In that case, sure if you can get the addon to build on Windows that would be pretty neat.

Yes exactly... travis can build Linux and Mac packages... Appveyor builds Windows

@corbinu How are things going?

@alexhultman Should be able to get this one by Wednesday evening got sidetracked with "work work"

@corbinu I've improved the Makefile I use. It is now able to download the Node.js SDKs and build the binaries without any other dependencies. I guess there is no persistent storage in Travis so it would need to download everything each time which is very inefficient but I guess that's how everyone is doing things.

clone the repo
cd uWebSockets/nodejs
make targets (this downloads the Node.js headers for all targets)
make (this ofc builds the binaries in dist)

Then I guess it should commit the binaries and push to GitHub.

Is Travis for real? They are using Ubuntu version from before I was born. Their C++ support is not even up to C++11, I mean the internet was not even invented before 2011. This service is just pure bullshit, seriously.

I have set up Travis for OS X. They have very recent and good OS X support but I got a hemorrhage from their stone aged Linux support. What is needed now is some way of retrieving the built binaries.

@alexhultman Sorry for all the delays was working on fixing a bug in prebuild. As for Travis yes they have a very old version but you can tell it to use trusty. Or just sent up your own docker container however you like and build in that.
As for saving the artifacts. It is up to you. For node I use "prebuild" which adds them to github releases. That or travis can save them to an S3 bucket. I can set up either one based on what you have done tomorrow. Just let me know what you would rather.
For an example of how to use the newer Ubuntu with travis (actually and docker and OS X and saving to github releases) this is what I currently do
https://github.com/corbinu/couchnode/blob/master/.travis.yml
I was fixing a bug yesterday for Linux binaries for Alpine linux(doesn't use gnu libc) in prebuild but probably best to wait to use that here until it is merged in

@alexhultman Would you be open to moving the node project to a separate repo. It seems travis can only do one type of deploy per repo. So if you want the node project deployed to npm then it can't also deploy the c binaries to this Github releases (however if you want to just make the C users built it themselves then that is not an issue.

I only plan on prebuilding for Node.js, later I'll add the project to homebrew etc. I dont want every push to publish to NPM, I'm thinking it would probably be best to just have Travis commit the binaries and have me manually publish to NPM.

@alexhultman ok I can set that up. I just have Travis setup to push NPM on tags and then I just tag the release versions(git-flow) but I will do the PR a little later without npm for now

@alexhultman Apparently I should have taken a closer look at the make file. I don't believe prebuild works if your not using node-gyp or node-ninja to build the module's C++ deps but I will take a closer look at the docs

@alexhultman Another quick note what versions of Node were you planning to support. I don't see a min version in the package.json however I can tell from the JS that it will only run on +4 do you want me to rewrite it as ES5 or I can setup a transpiler like Babel. Or better yet I can setup two versions one ES5 with the current callbacks and another ES6 with Babel that supports promises.

This project is Node.js 4+ only. I didn't want to use node-gyp since it is basically yet another build system (the millionth one). Instead I simply use the standard Unix make. If you need to, you can create a binding.gyp but the main issue remaining would be to get the binaries committed or something so that I can get something valuable out of Travis.

@alexhultman Ok that simplifies things. How as for node-gyp the issue is going to be that if it isn't used then there is nothing for prebuild to fallback to to build the binaries if they are not available (for example installing the node module on Windows/SmartOS/BSD/Alpine etc currently succeeds in the npm install but then fails on startup due to no binary being available. I am setting up a new makefile and binding.gyp in my fork so you can take a look

@alexhultman Does that make sense if I just set it up. Don't want to burn a bunch of time on it if your not wanting to use node-gyp

Hello,
may i up that suggestion by insisting on the fact nearly if not all nodejs addons use node-gyp to compile - and nodejs users expect their usual binding.gyp, so that npm install uws actually compiles the addon, not install an untrustable binary.
For the "install untrusted binary first" and "fallback to build" thing, there is also node-pre-gyp.
Side note: did you notice the existence of https://github.com/nodejs/nan ? It helps a lot with v8 api changes over time.

This is kind of controversial - some [JS] developers are 100% fanatical purists that refuse anything node-gyp simply because, yeah, I don't know why. I want to make things as seamless as possible by providing pre-built binaries that just work out of the box.
Trusting a binary is not really that hard - consider the binary a checksum of its source code. If you want to validate it you can compare your compiler output with mine. Remember that Node.js is distributed in binary form, just like about every piece of software out there.
I know of NaN but I don't like it, I rather use vanilla V8 for a number of reasons. But yeah, I have considered using node-gyp but this depends on how it is received by devs - I know a lot of them will be discouraged if they need to set up a compiler (even if this is a single one-liner in any Unix).

@Alexhultman not having to setup a compiler is what prebuild is for I am suggesting I would setup node-gyp so those on strange systems(SmartOS) or wanting to build their own bianary can. But then upload a prebuilt binary for Linux, Windows and OS X. The prebuild module depends on node-gyp however so just need to know your ok with using it
https://www.npmjs.com/package/prebuild

My current flow is:

Write code on Linux
Compile on OS X & Linux (using the Makefile)
NPM publish the 6 binaries (Node.js 4, 5, 6)

What I need, or maybe not need but would appreciate, is modifications to the .travis.yml so that the OS X binaries built are sent to me somehow, preferably committed to GitHub (if that does not come with obvious security issues).  I use exceptions.

@alexhultman doing a PR with a binding.gyp. "fixing" the npm package is another matter.

Implying the package is broken is maybe a little harsh. As far as I know npm install uws currently works and provides a working module out of the box.

I am not sure about flags in node-gyp maybe is better if somebody else takes this is just getting way more complicated then I first expected

Sorry for the harsh part. I meant broken w.r.t. being able to build from the npm package, as it is customary to be able to. That's PR #85.


Issue when you use 1-TSeries

Hi
Maybe you already aware of that but just in case I found an issue with TimeSeriesEcon.
1-TSeries(object) return an issue but -TSeries(object) + 1 seems working.

https://github.com/bankofcanada/TimeSeriesEcon.jl/commit/521ae3992b665c46ce89d925f2274da7f14311c4
This issues is addressed. Currently two methods to do this:

1 - ts: to mimic IRIS
1 .- ts: using Julia broadcasting capabilities


Replaced --log-file console with --foreground-mode

The command reference already contains the documentation for the foreground mode flag but still reads above it:

It can send a signal to the daemon service or run in the foreground with the flag --log-file set as console.

@oskardotglobal thank you for your contribution!