Probing program appears as if sending packets

Hello,
I have a question related to my previous issue  #220. I wrote a program with the purpose of matching network packets to PIDs. For this, I use a kprobe redBPF program to retrieve packet information from the kernel function __dev_queue_xmit. This information is then forwarded to the userspace program where the matching takes place. However, I noticed that quite a few packets are matched to the PID of the matching program itself, which I thought was odd because the matching program does not send any packets itself, it only analyzes them. To investigate, I wrote only the redBPF section of the program and output the information I retrieve (PID and executing command), and it turns out that there are packets which appear as if the probing program caused them. This is of course not the case, as the probing program is only observing the outgoing packets, not sending them. Do you have an idea what could be causing this?
This is the kernel main.rs:
#![no_std]
#![no_main]

use redbpf_probes::kprobe::prelude::*;
use kernel::test::*;
use core::mem::{self, MaybeUninit};
use core::convert::TryInto;
use core::cmp::min;

program!(0xFFFFFFFE, "GPL");

#[map]
static mut KERNEL_EVENTS: PerfMap<XmitEvent> = PerfMap::with_max_entries(2048);

#[map]
static mut BUF: PerCpuArray<XmitEvent> = PerCpuArray::with_max_entries(1);

#[kprobe("__dev_queue_xmit")]
unsafe fn dev_queue_xmit(regs: Registers) {
    let event = BUF.get_mut(0).unwrap();
    event.timestamp = bpf_ktime_get_ns();
    let pid_tgid = bpf_get_current_pid_tgid();
    event.pid = pid_tgid as u32;
    event.tgid = (pid_tgid >> 32) as u32;
    event.command = bpf_get_current_comm();

    let skb_ptr = regs.parm1() as *const u64 as *const sk_buff;
    let mut skb = MaybeUninit::<sk_buff>::uninit();
    // read skb
    if bpf_probe_read_kernel(
        skb.as_mut_ptr() as *mut _,
        mem::size_of::<sk_buff>() as u32,
        skb_ptr as *const _,
    ) < 0
    {
        bpf_trace_printk(b"error reading skb.len\0");
    }
    let skb = skb.assume_init();
    event.len = skb.len;
    event.data_len = skb.data_len;

    let readlen:u32 = min((skb.len - skb.data_len) % 128, BUFSIZE.try_into().unwrap());

    if bpf_probe_read_kernel(
        event.data.as_mut_ptr() as *mut _,
        readlen,
        skb.data as *const _,
    ) < 0
    {
        bpf_trace_printk(b"error reading skb.data\0");
    }

    event.copied_len = readlen;
    KERNEL_EVENTS.insert(regs.ctx, event);
}

This the kernel mod.rs:
pub const COMMLEN: usize = 16;
pub const BUFSIZE: usize = 128;

#[repr(C)]
#[derive(Debug, Clone)]
pub struct XmitEvent {
    pub timestamp: u64,
    pub pid: u32,
    pub tgid: u32,
    pub len: u32,
    pub data_len: u32,
    pub copied_len: u32,
    pub command: [i8; COMMLEN],
    pub data: [u8; BUFSIZE],
}

impl Default for XmitEvent {
    fn default() -> XmitEvent {
        XmitEvent {
            timestamp: 0,
            pid: 0,
            tgid: 0,
            len: 0,
            data_len: 0,
            copied_len: 0,
            command: [0; COMMLEN],
            data: [0; BUFSIZE],
        }
    }
}

And this the userspace main.rs:
use futures::stream::StreamExt;
use kernel::test::XmitEvent;
use std::ptr;
use redbpf::load::Loader;
use tracing::Level;
use tracing_subscriber::FmtSubscriber;

fn probe_code() -> &'static [u8] {
    include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"),
    "/target/bpf/programs/test/test.elf"
    ))
}

#[tokio::main(flavor = "current_thread")]
pub async fn main() {
    let subscriber = FmtSubscriber::builder()
        .with_max_level(Level::WARN)
        .finish();
    tracing::subscriber::set_global_default(subscriber).unwrap();

    let mut loaded = Loader::load(probe_code()).expect("error on Loader::load");

    loaded
        .kprobe_mut("__dev_queue_xmit")
        .expect("error on Loaded::kprobe_mut")
        .attach_kprobe("__dev_queue_xmit", 0)
        .expect("error on KProbe::attach_kprobe");

    while let Some((map_name, events)) = loaded.events.next().await {
        if map_name == "KERNEL_EVENTS" {
            for event in events {
                let xmit_event = unsafe { ptr::read(event.as_ptr() as *const XmitEvent) };
                // convert the command to [u8] so it can be printed
                let mut hm: [u8; 16] = [0; 16];
                for (i, x) in xmit_event.command.iter().enumerate() {
                    hm[i] = *x as u8;
                }
                println!("got event with tgid {}, command {:?}", xmit_event.tgid, std::str::from_utf8(&hm));
            }
        }
    }

}

This is an excerpt from an output file when running a twitch stream with mpv:
got event with tgid 208478, command Ok("redbpf-test\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 208015, command Ok("mpv/demux\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 0, command Ok("swapper/1\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 208478, command Ok("redbpf-test\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 208015, command Ok("mpv/demux\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 208015, command Ok("mpv/demux\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 208015, command Ok("mpv/demux\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 0, command Ok("swapper/1\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 0, command Ok("swapper/1\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 208478, command Ok("redbpf-test\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 0, command Ok("swapper/1\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 0, command Ok("swapper/1\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 208478, command Ok("redbpf-test\u{0}\u{0}\u{0}\u{0}\u{0}")

I let the stream run for around 10 seconds before shutting it down. There are 185 lines which contain the command redbpf-test out of 4618 lines/events which were captured. It also happens when accessing websites on a browser.
I am asking this because my implementation is based on a different program (matching program written in Python, the eBPF part in C), which did not appear to have this issue.
I'd be very thankful for any ideas about what could be causing this. Thank you!
This is my system info:
rustc 1.57.0
llvm 13.0.0-6
Linux 5.15.13-arch1-1

Hello @toasthorse
We've met before. How are you doing?
I've heard that send syscall does not mean sending packets synchronously.
send just puts the application data to some place in the kernel. And the
actual packet sending is done by kernel at some point.
So the point when send syscall is called can be different from the point when
__dev_queue_xmit.
This is my opinion based on my knowledge but I didn't analyze the kernel code
in person since I don't have enough expertise to follow the code path from
send to __dev_queue_xmit. So, my opinion might be not true.
I checked my thought by running simple busy loop program which consumes 100%
CPU.
The code is very simple:
fn main() {
    loop {}
}

I compiled it as debug mode to avoid the empty loop opted-out and run it as
root to set the CPU affinity.
For reference, my shell is fish so its syntax is different from bash
root@fedora /h/e/s/rust# for cpu in (seq 0 (math (nproc) - 1)); taskset -c $cpu anything/target/debug/examples/busy & end
root@fedora /h/e/s/rust# jobs
Job     Group   CPU     State   Command
12      28123   96%     running taskset -c $cpu anything/target/debug/examples/busy &
11      28122   98%     running taskset -c $cpu anything/target/debug/examples/busy &
10      28121   74%     running taskset -c $cpu anything/target/debug/examples/busy &
9       28120   96%     running taskset -c $cpu anything/target/debug/examples/busy &
8       28119   98%     running taskset -c $cpu anything/target/debug/examples/busy &
7       28118   99%     running taskset -c $cpu anything/target/debug/examples/busy &
6       28117   96%     running taskset -c $cpu anything/target/debug/examples/busy &
5       28116   99%     running taskset -c $cpu anything/target/debug/examples/busy &
4       28115   99%     running taskset -c $cpu anything/target/debug/examples/busy &
3       28114   98%     running taskset -c $cpu anything/target/debug/examples/busy &
2       28113   99%     running taskset -c $cpu anything/target/debug/examples/busy &
1       28112   99%     running taskset -c $cpu anything/target/debug/examples/busy &
root@fedora /h/e/s/rust#

root@fedora /h/e/s/rust# LANG=C mpstat -P ALL 1
Linux 5.15.13-200.fc35.x86_64 (fedora)  01/14/22        _x86_64_        (12 CPU)

20:58:20     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20:58:21     all   99.58    0.00    0.17    0.00    0.25    0.00    0.00    0.00    0.00    0.00
20:58:21       0   99.00    0.00    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00
20:58:21       1  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
20:58:21       2  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
20:58:21       3  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
20:58:21       4  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
20:58:21       5  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
20:58:21       6   99.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
20:58:21       7   99.00    0.00    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00
20:58:21       8  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
20:58:21       9   98.02    0.00    0.99    0.00    0.99    0.00    0.00    0.00    0.00    0.00
20:58:21      10  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
20:58:21      11  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00

All cpus are running 100%.
At this point, I executed your program and observed that it reports the name of
my simple busy loop program.
root@fedora /h/e/redbpf (dqx) [SIGINT]# cargo run --example dqx --no-default-features --features=llvm13 |rg busy
warning: field is never read: `flags`
  --> redbpf/src/symbols.rs:78:5
   |
78 |     flags: i32,
   |     ^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

warning: `redbpf` (lib) generated 1 warning
    Finished dev [unoptimized + debuginfo] target(s) in 0.18s
     Running `target/debug/examples/dqx`
got event with tgid 33071, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33061, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33061, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33063, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33063, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33060, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33062, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33063, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33060, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33061, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")
got event with tgid 33061, command Ok("busy\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}\u{0}")

This supports my thought that perhaps __dev_queue_xmit is called
asynchronously. I guess it may be called by NIC driver, interrupt or else.

Hi @rhdxmr,
Thank you for your reply. I am doing okay, currently quarantining but have not had any seriously bad symptoms so far. How about you?
It is correct what you said about packets being sent asynchronously. The thesis which my work is based on and this article state that __dev_queue_xmit is called to enqueue a packet which is ready to be sent in the queue of whatever network device will transmit the packet.
Thank you also for your experiment. I will have to look further into how exactly this is happening. Thank you for pointing this out!


"No link definition found" for footnotes

When I use footnotes^fn1, the language server generates a warning.

Here’s a repro, put this is src/test/diagnostic.test.ts:
	test('Should not generate diagnostic for valid footnotes', withStore(async (store) => {
		const doc = new InMemoryDocument(workspacePath('doc.test.md'), joinLines(
			`footnotes should work[^fn1]`,
			``,
			`[^fn1]: this is a footnote`,
		));

		const workspace = store.add(new InMemoryWorkspace([doc]));

		const diagnostics = await getComputedDiagnostics(store, doc, workspace);
		assertDiagnosticsEqual(diagnostics, []);
	}));

Footnotes aren't part of CommonMark so this is expected
They are common enough that I'd be open to adding support for them, but that should be something the library consumer has to opt into

I second that, footnotes are awesome and it'd be great for vscode markdown services to parse them accordingly

my vote for footnotes


added support for time segment

I usually like to have some evidence of the current time on the console. I added this segment only with the time, because the date and time would have taken a lot of space, but it is extensible to also have it. I tested this on a bash environment, and don't know if this will work on zsh or any other shell.

Thanks for this! I don't think this should be a default segment so I will remove it from the config.py.dist. Otherwise looks great


Helm Delete resources created outside of helm that are labelled as managed-by Helm??

Output of helm version: version.BuildInfo{Version:"v3.8.1", GitCommit:"5cb9af4b1b271d11d7a97a71df3ac337dd94ad37", GitTreeState:"clean", GoVersion:"go1.17.5"}
Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.7", GitCommit:"42c05a547468804b2053ecf60a3bd15560362fc2", GitTreeState:"clean", BuildDate:"2022-05-24T12:30:55Z", GoVersion:"go1.17.10", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.7", GitCommit:"42c05a547468804b2053ecf60a3bd15560362fc2", GitTreeState:"clean", BuildDate:"2022-05-24T12:24:41Z", GoVersion:"go1.17.10", Compiler:"gc", Platform:"linux/amd64"}

Cloud Provider/Platform (AKS, GKE, Minikube etc.): Single Node k8s
I have a webhook pod which I've given certain privileges to, like creating rolebindings. Ideally when I do helm uninstall the resources inside the helm chart get deleted.
And I've added these labels (manually) in the rolebindings that I'm creating through the pod:
"annotations": {
      "meta.helm.sh/release-name": release_name,
      "meta.helm.sh/release-namespace": release_namespace
  },
"labels":{
    "app": appName,
    "app.kubernetes.io/managed-by": "Helm",
    "chart": appName + "-0.1.0",
    "heritage": "Helm",
    "release": release_name
}

But what I'm seeing on helm uninstall is that only the resources inside of the helm chart are getting deleted, and the ones that I've labelled as managed-by Helm?
Is this how it is supposed to work? If yes, can you tell me use-case of having those labels?

iiuc, you want helm uninstall to remove resources created by the webhook?

If you have resources that have labels that match the managed-by, et al, when you install your release, those resources that match resources in your chart will be adopted into the release. The release holds the entire manifest of resources that came from the template. See helm template
When you uninstall, all the releases that are stored in the manifest are removed. See helm get manifest.
If you had resources with the matching labels that were not part of the manifest, helm will not know about them nor do anything with them.

Thanks @joejulian for the clarification. Upon further reading, I know that helm stores the release manifest in the form of a secret, and then uses it at the time of deletion (correct me, if I'm wrong), but do you think it is a valid requirement for future versions, where we can configure resources created outside of release manifest using helm, to be deleted with release uninstallation?

iiuc, you want helm uninstall to remove resources created by the webhook?

yes, that is what I was hoping for, but as @joejulian clarified, it is not possible as of now.

If you use apt/dnf/pacman to install a package, then use apt/dnf/pacman to uninstall that package, you wouldn't expect it to delete files not in that package. Helm operates under the same philosophy. It's a package manager.
So no, I personally don't think it would be a valid requirement for future versions.


Code generation problem with multiline strings

When using a String that needs to be formated multiline, like a pem String, the code generation fails.
Example:
.env
MY_KEY="-----BEGIN PRIVATE KEY-----\nXYZ...."
Workaround:
add 2x ' to the start and end of the string
MY_KEY="''-----BEGIN PRIVATE KEY-----\n...''"

A good workaround to this is to base64 encode your pem string then decode it in the app when you need to use it.


[release-4.18] OCPEDGE-1117: Update dependencies

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 69.53%. Comparing base (4bf6c07) to head (99b86c5).

Additional details and impacted files

@@              Coverage Diff              @@
##           release-4.18     #806   +/-   ##
=============================================
  Coverage         69.53%   69.53%
=============================================
  Files                50       50
  Lines              3453     3453
=============================================
  Hits               2401     2401
  Misses              866      866
  Partials            186      186


[Android] Position Formatting for Adaptive Cards Broken for Vertical Alignment

Steps to reproduce
We use a workflow to post adaptive cards to teams, and in part of the formatting, we have somethings vertically center aligned.
Below is the example adaptive card JSON:
{
    "type": "AdaptiveCard",
    "version": "1.4",
    "body": [
        {
            "items": [
                {
                    "bleed": true,
                    "style": "accent",
                    "columns": [
                        {
                            "items": [
                                {
                                    "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/PlaceholderLC.png/48px-PlaceholderLC.png",
                                    "altText": "[Example platform service image]",
                                    "type": "Image"
                                }
                            ],
                            "width": "48px",
                            "minHeight": "48px",
                            "type": "Column"
                        },
                        {
                            "width": "stretch",
                            "items": [
                                {
                                    "type": "RichTextBlock",
                                    "inlines": [
                                        {
                                            "weight": "Bolder",
                                            "size": "Large",
                                            "type": "TextRun",
                                            "text": "Automated test ticket created"
                                        }
                                    ]
                                }
                            ],
                            "type": "Column"
                        }
                    ],
                    "type": "ColumnSet"
                }
            ],
            "type": "Container",
            "verticalContentAlignment": "Center"
        },
        {
            "items": [
                {
                    "style": "emphasis",
                    "columns": [
                        {
                            "width": "96px",
                            "items": [
                                {
                                    "horizontalAlignment": "Center",
                                    "width": "48px",
                                    "type": "Image",
                                    "height": "48px",
                                    "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/24/Missing_avatar.svg/48px-Missing_avatar.svg.png",
                                    "style": "Person"
                                },
                                {
                                    "horizontalAlignment": "Center",
                                    "wrap": true,
                                    "spacing": "Small",
                                    "type": "TextBlock",
                                    "text": "Firstname Lastname"
                                }
                            ],
                            "type": "Column"
                        },
                        {
                            "width": "auto",
                            "items": [
                                {
                                    "type": "RichTextBlock",
                                    "inlines": [
                                        {
                                            "weight": "Bolder",
                                            "type": "TextRun",
                                            "text": "Ticket Title"
                                        }
                                    ]
                                },
                                {
                                    "isSubtle": true,
                                    "wrap": true,
                                    "spacing": "Small",
                                    "type": "TextBlock",
                                    "text": "Ticket #: [**12345678**](#linkToTicketingSystem)"
                                }
                            ],
                            "separator": true,
                            "spacing": "Large",
                            "type": "Column"
                        }
                    ],
                    "type": "ColumnSet"
                }
            ],
            "type": "Container",
            "verticalContentAlignment": "Center"
        },
        {
            "inlines": [
                {
                    "text": "Example text included as a comment.",
                    "type": "TextRun"
                }
            ],
            "separator": true,
            "spacing": "ExtraLarge",
            "type": "RichTextBlock"
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "msteams": {
        "width": "Full"
    }
}

Expected behavior
This shows up properly on PC/Web, where the text meant to be vertically aligned does position to the center properly.
Actual behavior
Shows up incorrectly on Android, by positioning things at the top instead of centered vertically.
Error details
No response

Hi @Andrew-J-Larson, Thanks for raising your issue. We will check this at our end and will update you accordingly.

@Andrew-J-Larson , could you please share the screenshot showing how its rendering in Android client as compared to Desktop/web client?
We tried to repro this, and this is what we are observing:
Desktop/Web:

Android:

Yes, that's exactly how it's showing up for me too.
Notice the area with the ticket title and ticket number and how their position change on Android vsnon PC/web?

Thanks for confirming @Andrew-J-Larson. We have raised a bug for this issue. We will inform you once we get any further update from engineering team.
Thanks!

I'd like to mention a few other inconsistent formattings:

Windows: URLs are not underscored by default (on Android they are)
Windows: Mentions are not bolded by default (on Android they are)

Oh and the emphasis background color on Android is way too bright for the dark mode, see the following (from your reply):

Android:

Also for the Android dark mode, the emphasis background color is basically gone.


修正vs2019 vc142工具编译错误

如题

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

use clang-format14 format code;
use pr template is help to understand what happend and why create the pr, provide more details is better;

could you update the pr again?

could you update the pr again?

no,
inline is not necessary here as described in C++ standard n3376 , 3.2/6,
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf

inline is not necessary here as described in C++ standard n4296, 3.2/6,

for example, std::make_shared()  has no inline in vc or gcc header files.
I personaly suggest to remove all unnecessary STRUCT_PACK_INLINE for more clear codes.


Cannot tag FirehoseDelivery stream

What happened?
Cannot add tags to FirehoseDeliveryStream
    error: aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream resource 'testStream' has a problem: Value for unconfigurable attribute. Can't configure a value for "tags_all": its value will be decided automatically based on the result of applying this configuration.. Examine values at 'testStream.tagsAll'.

Example
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const testStream = new aws.kinesis.FirehoseDeliveryStream("testStream", {
    destination: "http_endpoint",
    tags: {
        "a": "b",
    },
    httpEndpointConfiguration: {
        url: "https://aws-api.newrelic.com/firehose/v1",
        name: "New Relic",
        accessKey: "my-key",
        bufferingSize: 15,
        bufferingInterval: 600,
        roleArn: "?",
        s3BackupMode: "FailedDataOnly",
        s3Configuration: {
            roleArn: "?",
            bucketArn: "?",
            bufferingSize: 10,
            bufferingInterval: 400,
            compressionFormat: "GZIP",
        },
        requestConfiguration: {
            contentEncoding: "GZIP",
            commonAttributes: [
                {
                    name: "testname",
                    value: "testvalue",
                },
                {
                    name: "testname2",
                    value: "testvalue2",
                },
            ],
        },
    },
});

Output of pulumi about
CLI
Version      3.92.0
Go Version   go1.21.3
Go Compiler  gc

Plugins
NAME    VERSION
aws     6.12.0
awsx    2.3.0
docker  4.5.0
docker  3.6.1
nodejs  unknown

Host
OS       darwin
Version  14.1.1
Arch     x86_64

This project is written in nodejs: executable='/Users/t0yv0/bin/node' version='v18.18.2'

Current Stack: t0yv0/aws-tags-firehose/dev

Found no resources associated with dev

Found no pending operations associated with dev

Backend
Name           pulumi.com
URL            https://app.pulumi.com/t0yv0
User           t0yv0
Organizations  t0yv0, pulumi
Token type     personal

Dependencies:
NAME            VERSION
@pulumi/awsx    2.3.0
@pulumi/pulumi  3.94.2
@types/node     18.18.14
@pulumi/aws     6.12.0

Pulumi locates its logs in /var/folders/gk/cchgxh512m72f_dmkcc3d09h0000gp/T/ by default

Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

This should have been caught by TestTagsAllNoLongerComputed.
In https://github.com/pulumi/pulumi-aws/issues/2895 fix we introduced a change where Pulumi computes tags_all attribute instead of having TF do it. As part of that, there's automatic schema correction rolled out that removes Computed from tags_all. Looks like this defeated our testing though?

All resources affected by this bug:
                aws_kinesis_firehose_delivery_stream
                aws_opsworks_php_app_layer
                aws_opsworks_rails_app_layer
                aws_quicksight_data_set
                aws_wafv2_ip_set
                aws_wafv2_web_acl
                aws_opsworks_ganglia_layer
                aws_opsworks_memcached_layer
                aws_wafv2_regex_pattern_set
                aws_opsworks_static_web_layer
                aws_quicksight_analysis
                aws_opsworks_nodejs_app_layer
                aws_opsworks_mysql_layer
                aws_opsworks_ecs_cluster_layer
                aws_opsworks_haproxy_layer
                aws_quicksight_template
                aws_opsworks_java_app_layer
                aws_opsworks_custom_layer
                aws_wafv2_rule_group
                aws_quicksight_dashboard
                aws_quicksight_data_source
                aws_medialive_channel
                aws_quicksight_theme


Orchestrator doesn't do recovery after detecting a failover

I used the latest operator image v0.3.0-rc.1.
I launched a MySQL cluster with 3 members, one master and two secondaries. The Orchestrator web UI show their status correctly at very beginning. But I got some error message in Orchestrator log
ReadTopologyInstance(my-cluster-mysql-0.mysql.default:3306) ReplicationLagQuery: Error 1142: SELECT command denied to user<EMAIL_ADDRESS>for table 'heartbeat'
ReadTopologyInstance(my-cluster-mysql-1.mysql.default:3306) ReplicationLagQuery: Error 1142: SELECT command denied to user<EMAIL_ADDRESS>for table 'heartbeat'
ReadTopologyInstance(my-cluster-mysql-2.mysql.default:3306) ReplicationLagQuery: Error 1142: SELECT command denied to user<EMAIL_ADDRESS>for table 'heartbeat'
I found out that mysql user orchestrator did not have privileges on table heartbeat so I GRANT privileges manually for each mysqld.
I used kubectl delete pod my-cluster-mysql-0 --grace-period=0 --force to delete master.
The Orchestrator detected the master is unreachable
Detected: 2019-05-15T23:29:43Z
2 replicating hosts :
my-cluster-mysql-2.mysql.default:3306
my-cluster-mysql-1.mysql.default:3306
Changelog :
2019-05-15T23:29:43Z UnreachableMaster,
It, however, did not take any step to automatically recover the failure. There is no secondary to be promoted to the new master.
Can anyone help me with this issue?

I am not familiar with the operator image. Please consider opening an issue where you got the operator image.
Having said that, UnreachableMaster does not make a failover scenario. See https://github.com/github/orchestrator/blob/master/docs/failure-detection.md#unreachablemaster

Sorry to post the question in the wrong place. I am gonna close this issue.


CFG could use a 0.1 float increment/decrement resolution on it's slider.

Since LCM models and other checkpoint/lora/sampler combos use low and discrete CFG settings, it would be nice to have a resolution of 0.1 on the slider instead of whole integers.

+1 to this. I would really like to set cfg to 2.5 but currently I can't!

+1
Some models are very sensitive to CFG (SDXL Lightning/Turbo models) and even for those who aren't, increment of 1 is totally unacceptable. For sensitive models, CFG directly influences the style of the output and needs to be carefully chosen, often time ending up in a middle area, e.g. 2.5 (as mentioned above), which currently we can't slide to.


Support of lower level Log Analytics workspace in diagnostics module.

According to CAF architecture our company has deployed a Log Analytics instance on the level1(management subscription) and was going to use it to deploy diagnostic and collect  information for several resources on the level2(connectivity subscription). After attempt of Diagnostics deployment  on the level2 with LA in level1 and investigation has been found that the current Diagnostics module allow to use LA workspace  as diagnostic_destination only from the same level where Diagnostics is implemented. If possible we would like to request  a such modification of Diagnostics module  that will  allow to use LA from lower level as destination  , same as it is possible for other resources  with help of  parament LZ_KEY . At the moment module diagnostic does not accept  LZ_KEY.
Desired configuration.
diagnostics_destinations = {
log_analytics = {
central_logs = {
log_analytics_destination_type = "Dedicated"
log_analytics_key ="la_level1_workspace"
lz_key             = "governance"    <-----------  !!!!!!!!!!!!!!!!!!!!!
}
}
}

hi @LisenaKiev, the diagnostics objects are already carried over at all layers by the landingzones.
if you look into the starter, we define diagnostics at level 0 and use them at level 2: https://github.com/Azure/caf-terraform-landingzones-starter/blob/AL-contoso/configuration/archived/sandpit/level2/networking/hub/configuration.tfvars

closing as feature already implemented.


RWX volume: use soft mode with long timeout for nfs client

When a RWX volume is attached, a share-manager pod embedded with a userspace NFS server is created and the volume is exported. A remote exported share is hard mounted by Longhorn, and it is then provided to the workload. When the share-manager pod or embedded NFS server is somehow crashed or unreachable, the 'hard mount' option keeps the client trying to connect to NFS server and prevents data loss.
The root cause is the Linux kernel is trying to maintain filesystem stability. Linux kernel will not allow a filesystem to be unmounted until all its pending IO is written back to storage, and the system can't shut down until all file systems are unmounted. Currently, the bug/issue is not resolved.
Longhorn/longhorn#6655

@mergify backport v1.5.x v1.4.x


confluence 7.12.2 > 7.12.5

Motivation for this change
See here:
https://confluence.atlassian.com/doc/confluence-security-advisory-2021-08-25-1077906215.html
Confluence Server and Data Center - CVE-2021-26084 - Confluence Server Webwork OGNL injection
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages 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/)
21.11 Release Notes (or backporting 21.05 Release notes)

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

[x] Fits CONTRIBUTING.md.

Please rebase instead of merging master into your branch.


Orbitline now works as before

Orbitline now works with rewrite #33
Can move code in orbit.js, wasn't sure where to put it

maybe it's a better idea to move the other way, i'll change that

Looks great! The only issue that I found is as you mentioned that certain orbit code is in scene instead. You can just grab the exported earth object into your orbit class and use it there.
Great use of the new event system btw!
Changes needed:
Move the orbit code to scene
Remove the big console.logs that you are doing. Usually lets try to keep logging in main to a minimum unless absolutely needed. So when you are done programming, please remove your logs if they are not needed. Especially ones where alot of data is dumped


Autocomplete for change_scene() uses wrong icon

Godot version:

750f8d4926edb14269d9f6a117c5a9fd4765373
OS/device including version:

ArcoLinux
Issue description:

Shows a function icon, should be a path icon I assume

Does not apply to v4.3.stable.flathub [77dcf97d8]
So this should either be closed or moved to the 3.x milestone


DocsArchive-<IP_ADDRESS>Auto archive content

Auto archive content from https://github.com/opstest2/docs-archive-test-source.git

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


Contacts disappearing with FR 2.9

Hi @bradleybeddoes ,
When testing #247, I got changes from #243 merged in - and was surprised to see all contacts dropped from my metadata (in my isolated DEV environment).
Turned out, even though app/plugins/base/grails-app/domain/aaf/fr/foundation/Contact.groovy sets default value for active to true, all existing Contacts defaulted to false.
After some digging (and inspired by https://stackoverflow.com/questions/16505968/how-to-set-default-value-for-domain-class-values-in-grails-2-2/17623185), I got this sorted with:
@@ -43,6 +43,7 @@ class Contact {
        static mapping = {
                autoImport false
                sort "surname"
+               active defaultValue: true
        }

        public String toString() { "contact:[id:$id, givenName: $givenName, surname: $surname, email: $email]" }

I also found it surprising that the UI left no way to:

find and re-active inactive contacts
actually remove association of inactive contacts with an entity

I have a local change that addresses 1 by listing all Contacts regardless of their active status but adds Active as another column to the listing.
And I'm thinking 2 would be best addressed by also listing inactive contacts on the IdP/SP details page - so that they can be removed from the listing (to make sure they don't jump in when a contact gets marked active again).
I wanted to check with you on these before I send a PR - what are your thoughts on these?
(The static mapping and the proposed UI changes) ?
Thanks a lot in advance for getting back to me.
Cheers,
Vlad

Vlad - you're right, this is a caveat. I addressed it in our upgrade process by running a SQL query to set all contacts active post upgrade. Your proposal of active defaultValue: true is much cleaner, happy to merge a PR on that specific aspect.
On the other points you're correct, none of that was done. AAF support was involved in the decision making on this, all they needed is what was delivered i.e. active toggle flag.
The rest of the work we're not undertaking. We're trying to do as little as possible now with FR and invest effort towards new infrastructure and tooling going forward. Keeping FR as stable as possible is our primary goal with this project now, very much a maintenance only approach.
Of course you're still welcome to send FR functionality PR if you feel something is necessary on the Tuakiri side but reviewing them will be well down on my list of of activities. Knowlege that a PR had been proven in production over an extended period without any breakage is likely to help get said PR merged at this point.


Rename locationType aggregation to items.locations.type

The location type aggregation used for online and in the library filtering does not follow the naming convention for filters and aggregations.
It is currently implemented as locationType when it should be items.locations.type. The corresponding filter is correctly named items.locations.type.
This change will need to be made in conjunction with updating the front end to support the new name.

@jtweed there is two filters here:

items.location.type => values: DigitalLocation | PhysicalLocation (used on the frontend)
items.location.locationType => Populated with these values

I imagine what we should be doing as I thought we were going to remove those values from the API is deprecate no 2?

I'm talking about the aggregation that goes with filter 1. It doesn't follow the naming convention of it being named the same as its corresponding filter.

The new filter is deployed, but the output needs some tweaking – the aggregation result is still called "locationType".

The new filter is deployed, but the output needs some tweaking – the aggregation result is still called "locationType".


Warning level documentation is outdated

Any value greater than 5 will be treated as 5. To make sure you always have all warnings if the compiler is updated with new warning levels, put an arbitrary large value (for example, 9999).

This is not correct. We have warning level 7 now.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 26ef35c2-6df4-26f8-32b2-9b50eb76c037
Version Independent ID: e57ac82b-307e-163b-8172-52644b3a6baa
Content: C# Compiler Options - errors and warnings
Content Source: docs/csharp/language-reference/compiler-options/errors-warnings.md
Product: dotnet-csharp
Technology: csharp-language-reference
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

I also think it might be possible for third-party analyzers to specify a specific warning level, so pretty much any value can have an effect, even if it's not common.

Thanks @Youssef1313
I've added this to our list.
(I know I keep saying that in this area. I think I'll finally get time to spend on the compiler diagnostics over the next few months.)

The link on "additional warnings" should also be updated to point to the current version of the file.


Trouble building binary NPM in Meteor 1.4

So my app makes extensive use of a couple of binary NPM modules. Up until the release of Meteor 1.4 I had been using a private Meteor package as a wrapper. With the release of Meteor 1.4 those packages have stopped working because I of the node version, plus I would prefer to use npm install moving forward now that Meteor is on a current version of node. Unfortunately I'm having a ton of issues deploying and building those modules using MUPX to my DO droplets. Advice appreciated. This is my readout in my log.
><EMAIL_ADDRESS>install /bundle/bundle/programs/server/npm/node_modules/talib
> node ./src/lib/build.js && node-gyp configure && node-gyp build

building talib functions...
make: Entering directory '/bundle/bundle/programs/server/npm/node_modules/talib/build'
  CXX(target) Release/obj.target/talib/src/talib.o
  SOLINK_MODULE(target) Release/obj.target/talib.node
../src/lib/lib/libta_libc_csr.a: error adding symbols: Archive has no index; run ranlib to add one
collect2: error: ld returned 1 exit status
talib.target.mk:125: recipe for target 'Release/obj.target/talib.node' failed
make: *** [Release/obj.target/talib.node] Error 1
make: Leaving directory '/bundle/bundle/programs/server/npm/node_modules/talib/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/opt/nodejs/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 4.4.0-31-generic
gyp ERR! command "/opt/nodejs/bin/node" "/opt/nodejs/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build"
gyp ERR! cwd /bundle/bundle/programs/server/npm/node_modules/talib
gyp ERR! node -v v4.4.7
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok

npm ERR! Linux 4.4.0-31-generic
npm ERR! argv "/opt/nodejs/bin/node" "/opt/nodejs/bin/npm" "rebuild" "--no-bin-links" "--update-binary"
npm ERR! node v4.4.7
npm ERR! npm  v3.10.5
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: `node ./src/lib/build.js && node-gyp configure && node-gyp build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node ./src/lib/build.js && node-gyp configure && node-gyp build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the talib package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./src/lib/build.js && node-gyp configure && node-gyp build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs talib
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls talib
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /bundle/bundle/programs/server/npm/npm-debug.log

npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.
npm WARN<EMAIL_ADDRESS>No license field.
npm ERR! Linux 4.4.0-31-generic
npm ERR! argv "/opt/nodejs/bin/node" "/usr/bin/npm" "install" "--unsafe-perm"
npm ERR! node v4.4.7
npm ERR! npm  v3.10.5
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: `node npm-rebuild.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node npm-rebuild.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the meteor-dev-bundle package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node npm-rebuild.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs meteor-dev-bundle
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls meteor-dev-bundle
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /bundle/bundle/programs/server/npm-debug.log

Having a very bad time with this aswell.

Did you found a solution??

I just had to manually revert the project back to meteor 1.3, which is not a process i'd recommend.


Deploy application

Running on localhost:3000 is pretty good, but it would be even better to be up and running at http://the.best.ircc.website.gov.ninja
Part of this means actually deploying our app to somewhere public, probably (for sure) Amazon Web Services.

App is up! -> https://ircc-poc.azurewebsites.net/


Handling errors for creating a new storage disk handler

Refs: https://github.com/keep-network/keep-ecdsa/issues/336
depends on keep-commons https://github.com/keep-network/keep-common/pull/25, will need to update the version in mod.go

@dimpar could you set the right version of keep-common?


Testimonial

What is the change?
Testimonial Section  added to website .
Related issue?
close: #342
How was it tested?
I have tested  it in my local system .
Checklist:
Before you create this PR, confirm all the requirements listed below by checking the checkboxes [x]:

[x] Have you followed the Contribution Guidelines while contributing.
[x] Have you checked there aren't other open Pull Requests for the same update/change?
[x] Did you lint your code before making the Pull Request?
[x] Have you made corresponding changes to the documentation?
[x] Your submission doesn't break any existing feature.
[x] Have you tested the code before submission?

Screenshots or Video:
Add a screenshot or demo video if appropriate.
https://user-images.githubusercontent.com/67833077/116255182-a37d6c80-a78f-11eb-9e07-4a13d0fda982.mp4

@Pranav016   Please review it now.
I have tested the code without that bootstrap scripts  but it is not working .

/gssoc/

/level3/

@Pranav016 Thank You for helping me out throughout  the  issue .

@Pranav016 Thank You for helping me out throughout the issue .

Thank you for your amazing work and contribution 😄


After full collection, there are no refs in the ref table

Left my collection running from scratch for github/gitlab/jenkins/jira
Everything is collected fine except for the domain layer refs table
I also can't find anywhere in the code where we are actually saving refs to the DB

This is because you need to run gitextractor before the refdiff plugin
https://github.com/merico-dev/lake/blob/main/plugins/refdiff/README.md


Workspace Factory #2: Edit category name, category ordering, UI

Added two main features to workspace factory:
(1.) Change the name of the currently selected category
(2.) Change category ordering using the arrow keys
Also updated the UI for the category list, changing the add and remove buttons to be in the category list, and adding an edit button (currently only allows you to change the category name).
Other smaller changes:
Displays message about categories appearing in the list when no categories have been created, and removes it when the first category is created (adds it back in later if all categories are deleted). Also allowed the user to save their current work in a new category when switching from a single flyout to multiple categories.

This change is

+@quachtina96 +@picklesrus +@vicng  +@rachel-fenichel
I think because of the way I set up my branches in Git it shows everything as new. Not sure how to fix that but it would be awesome to figure out (at least for the sake of you guys) before I start on the next CL.

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

Comments from Reviewable

This was a mistake -- merged my old changes and now opening a new pull request from another branch.


Include hash in sserver metadata ref

Include a hash in the scan server metadata ref to reduce splits in the metadata table.
This is the same logic that is currently used in the ~del ref markers

Old Ref:
~sservfile:/data/workspace/accumulo/test/target/mini-tests/
New Ref:
~sserv5e6087acfile:/data/workspace/accumulo/test/target/

Not sure these changes will handle the old format very well if seen.  This could lead to never deleting the old format and not considering the old format for GC purposes.

Closing this in favor of the UUID solution in #4596


Add a parameter to store all predictions (expectations)

Better yet: have the model logger store the value of any member variable/return value of any member function of the DDLiteModel object. Something like DDL.set_logger_attribs["lf_names", "get_predicted_marginals"]

@SenWu @henryre is this still open?


Sealed Secrets Page not visible in the Console User Interface

Hello I tried to access the sealed secrets page to add a new secret, but I can't seem to find the page in the User Interface of the Console.
sealed secrets is active though.
the documentation also has nothing in regards to how to create the secrets via UI or manually.
Is there a way of manually installing them via kubectl? that would also work for us at the moment.
To Reproduce
Steps to reproduce the behavior:

Go to 'Otomi Console'
Try to enter Secrets
See no Secrets menu

Expected behavior: show the page to add secrets. and add to the docs how to manually create secrets so that Otomi can read them. especially helpful for external git providers for team builds
Screenshots: (if applicable, add screenshots to help explain your problem)

Cluster(s):

Cloud: custom
Cluster: [e.g. demo]

Versions: (seen in console's /settings)
Kubernetes v1.28.11+k3s2

Core Version [v2.11.5]
Console Version: [2.8.2]
API version: [2.9.1]

when changing from the admin team to the product/project team it became visible.
make sure in the labs etc, you are on the actual TEAM and not the general admin config that you are in first (toggle top right)


[Grid2] Add dynamic classes to Grid2Classes interface

This PR adds dynamic classes to Grid2Classes interface which were reverted in this PR https://github.com/mui/material-ui/pull/44420

Should these classes be documented?

Grid doesn't document dynamic classes, so i wan't sure if those need to be documentd in Grid2
Grid classes: https://mui.com/material-ui/api/grid/#classes

Also, users can modify the breakpoints which means these classes can potentially become non-relevant.

Correct. The classes added in this PR simply reflect the ones that are actually added to the DOM. However, I think the bigger issue is that if users modify their breakpoints, neither Grid nor Grid2 handles this scenario properly, as the breakpoints are hardcoded in both components.
https://github.com/mui/material-ui/blob/821784419eefb89e4ce7b66c4b602a1e33d2fa88/packages/mui-material/src/Grid2/grid2Classes.ts#L27-L37

@sai6855 do you think this PR still makes sense? If not, let's close it.

@sai6855 do you think this PR still makes sense? If not, let's close it.

Given breakpoints can be dynamic, don't think this PR is relevant


Solved: android\gradlew.bat exited abnormally

on debugging:
Launching lib\main.dart on Android SDK built for x86 in debug mode...

Error running Gradle:
ProcessException: Process "D:\Projects\Flutter\hello_world\android\gradlew.bat" exited abnormally:

FAILURE: Build failed with an exception.

What went wrong:
Could not write cache value to 'C:\Users\Jonathan Torre.gradle\daemon\4.10.2\registry.bin'.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org
Command: D:\Projects\Flutter\hello_world\android\gradlew.bat app:properties

Please review your Gradle project setup in the android/ folder.
Exited (sigterm)

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.5.4-hotfix.2, on Microsoft Windows [Version 10.0.18362.175], locale en-PH)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
[√] Android Studio (version 3.4)
[√] VS Code (version 1.35.0)
[√] Connected device (1 available)
• No issues found!
Uninstalled Android Studio, VSCode. Deleted folders installed. Deleted Adroid folder. Deleted Flutter SDK folder.
Re downloaded, installed, update and still has this error. Please help. No idea what to do next.

SOLVED: Delete '.gradle' folder in C:\Users***.gradle, connect to internet, rebuild project to download latest Gradle.

Help is very much appreciated.

https://stackoverflow.com/questions/28107112/how-to-read-gradles-registry-bin
Might help.

I am not sure but I think empty spaces could be the problem.
Could not write cache value to 'C:\Users\Jonathan Torre.gradle\daemon\4.10.2\registry.bin'.

Try running flutter doctor -v
Is your environment path setup correctly?

@d-apps Yes apps run successfully before. Did not edit or change Gradle files. Started error when i was adding images to a project and downloading dependencies. And was about to update Android's platform_tools to 29.0.0. Updated platform_tools to 29.0.1 but still same error. Also Android Studio and VSCode updated to latest releases.. Try installing latest Gradle same error result.

@ketamn Already tried running flutter doctor -v and flutter doctor --android-licenses. Same result. See image attached. Environment path setup properly as instructed in flutter.dev..

@phanirithvij Will try delete .gradle folder. Although deleted once the Andoid folder when I uninstalled Android studio and Vscode. Will update if this works

@phanirithvij It works! Thanks. Thanks also to @ketanm @d-apps

i dont wanna delete my .gradle folder is there any other option?

I am facing the same issue now and none of these answers work for me,what should i do?

Same problem here! Any one gentleman to help please...

same problem here... really no answer for months?

Cant help u guys. A newbie developer here. Try searching the exact error here in github. Might find the answers.. Have a good day!

non of the above solution helped!! please guide us

deleting the .gradle file did not work for me.

project  gradel.txt

and
app gradel.txt

two changes in project gradel:
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2'
}
this is one change.
and other is
ext.kotlin_version = '1.3.50'
and one in app gradel:
compileSdkVersion 29
these worked for me

I don't know how you guys solved it, because the OP didn't mark one as solution.
However, the way I solved it was to have certain conditions while using the release configurations written in the app/gradle file

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

and then in the android section
signingConfigs {
        release {
            if (keystorePropertiesFile.exists()) {
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }

I'm experiencing the same issue. It seemed to have started when I upgraded to flutter 1.9, however, even downgrading/changing versions doesn't fix anything. Looking around Google, it seems like this is a rather common problem. Please Google/Flutter team, help us out!

two changes in project gradel:
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2'
}
this is one change.
and other is
ext.kotlin_version = '1.3.50'
and one in app gradel:
compileSdkVersion 29
these worked for me

i forget to mention one more thing
go to android->gradel-> wrapper->gradel-wrapper-properties and change it zip file to version
5.4.1
this is all i have done in my case

two changes in project gradel:
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2'
}
this is one change.
and other is
ext.kotlin_version = '1.3.50'
and one in app gradel:
compileSdkVersion 29
these worked for me

i forget to mention one more thing
go to android->gradel-> wrapper->gradel-wrapper-properties and change it zip file to version
5.4.1
this is all i have done in my case

Thank you so much! This worked for me!

two changes in project gradel:
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2'
}
this is one change.
and other is
ext.kotlin_version = '1.3.50'
and one in app gradel:
compileSdkVersion 29
these worked for me

i forget to mention one more thing
go to android->gradel-> wrapper->gradel-wrapper-properties and change it zip file to version
5.4.1
this is all i have done in my case

where do we need to use the 'ext.kotlin_version ='1.3.50'

Top of the file. Project gradel.
On Sat, Oct 12, 2019, 6:36 PM Suman Gautam<EMAIL_ADDRESS>wrote:

two changes in project gradel:
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2'
}
this is one change.
and other is
ext.kotlin_version = '1.3.50'
and one in app gradel:
compileSdkVersion 29
these worked for me
i forget to mention one more thing
go to android->gradel-> wrapper->gradel-wrapper-properties and change it
zip file to version
5.4.1
this is all i have done in my case
where do we need to use the 'ext.kotlin_version ='1.3.50'
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/34324?email_source=notifications&email_token=AKH5LM4NQCHU6XFWEMENIQLQOHDV7A5CNFSM4HXH6CFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBB674I#issuecomment-541323249,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKH5LM32KR4KP4GXJXSU7BLQOHDV7ANCNFSM4HXH6CFA
.

Changing from
ext.kotlin_version = '1.2.71' to
ext.kotlin_version = '1.3.50'
solved the issue for me.

Changing from: (android/build.gradle)
ext.kotlin_version = '1.2.71'
to
ext.kotlin_version = '1.3.50'
solved the issue for me.

solved too tanks

I solve this problem: enter the Android Studio > Setting > System Setting >  Android SDK ---and install API level 24,25,26,27,28,29  after restart app.

Might be a bit late to the party, but in my case, build.gradle was referencing the keystoreProperties variable, but the key.properties file wasn't there. I guess somewhere along the way it got deleted. Created that file again and added the properties that were being referenced.

two changes in project gradel:
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2'
}
this is one change.
and other is
ext.kotlin_version = '1.3.50'
and one in app gradel:
compileSdkVersion 29
these worked for me

i forget to mention one more thing
go to android->gradel-> wrapper->gradel-wrapper-properties and change it zip file to version
5.4.1
this is all i have done in my case

Brilliant! This helped a lot. Cheers for that

I have tried to do almost all the above fixes but none of them worked. I decided to **replace the android folder with another folder from another folder it worked also delete the _android.iml that gets created when you create a project

on debugging:
Launching lib\main.dart on Android SDK built for x86 in debug mode...

Error running Gradle:
ProcessException: Process "D:\Projects\Flutter\hello_world\android\gradlew.bat" exited abnormally:

FAILURE: Build failed with an exception.

What went wrong:
Could not write cache value to 'C:\Users\Jonathan Torre.gradle\daemon\4.10.2\registry.bin'.
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
Command: D:\Projects\Flutter\hello_world\android\gradlew.bat app:properties

Please review your Gradle project setup in the android/ folder.
Exited (sigterm)
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.5.4-hotfix.2, on Microsoft Windows [Version 10.0.18362.175], locale en-PH)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
[√] Android Studio (version 3.4)
[√] VS Code (version 1.35.0)
[√] Connected device (1 available)
• No issues found!
Uninstalled Android Studio, VSCode. Deleted folders installed. Deleted Adroid folder. Deleted Flutter SDK folder.
Re downloaded, installed, update and still has this error. Please help. No idea what to do next.

SOLVED: Delete '.gradle' folder in C:\Users***.gradle, connect to internet, rebuild project to download latest Gradle.

What do you mean by rebuild? Installing the packages back again?

if you are used Firebase in your project make the gradle classpath version same us google-services classpath in Project-level build.gradle (/build.gradle)
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:3.2.1'
}

I solve this problem: enter the Android Studio > Setting > System Setting > Android SDK ---and install API level 24,25,26,27,28,29 after restart app.

did you install the whole files or just the SDKs?

ext.kotlin_version = '1.3.50'

I have the same problem but I am not finding this ext.kotlin_version = '1.3.50', please help

For me, the thing was I have hidden the .gradle folder. If you are using windows then try to unhide and try again.
Also PS: Don't use Windows for development 😁😉


versions of libraries

Hi,
You used so many third-party libraries and softwares in your code. If you have time, could you please list out the versions of these libraries or softwares? Then at least we will not be confused by the combination of different versions. Thanks very much.

I also have problems with the version.
For example, make.sh is complaining about using Eigen Functions in global functions.


Improved compatibility with Postman collections [bounty: $1500]

We would like to improve the workflow for users of Postman collections (v2.x) that want to load test their APIs using k6, provide an even better onboarding experience to k6 (and in extension Load Impact), by extending the postman-to-k6 converter to take the following Postman collection features into account in the conversion process. A completed solution will also include tests and docs (updated README).
Related issues:

https://github.com/loadimpact/postman-to-k6/issues/7: Convert collection that uses Environment Variables
https://github.com/loadimpact/postman-to-k6/issues/12: Add support for variables in body

Cookies
Setting cookies properly if they’re explicitly defined in the collection, see docs.
Relevant links:

https://docs.k6.io/docs/cookies
https://www.getpostman.com/docs/v6/postman/sending_api_requests/cookies

TLS Client Certificates
Setting up use of client certificates in k6 if defined in the collection, see docs.
Relevant links:

https://docs.k6.io/docs/ssl-tls-client-certificates
https://www.getpostman.com/docs/v6/postman/sending_api_requests/certificates

Authentication
Support the most common authentication options supported by Postman, see docs.
The authentications we want to support:

No auth (already supported in the converter)
Bearer token
HTTP Basic (already supported in the converter)
HTTP Digest
OAuth 1 / 2

See: TODO KB example script

AWS Signature v4

See https://support.loadimpact.com/4.0/test-scripting/examples/#aws-signature-v4-authentication (will be more performant once we have support for binary output for the hashing algorithms in the crypto package: https://github.com/loadimpact/k6/issues/856)

NTLM Authentication

This should also include the case when the authentication is set to “Inherit auth from parent”.
Relevant links:

https://github.com/loadimpact/postman-to-k6/tree/master/lib/postman/auth
https://www.getpostman.com/docs/v6/postman/sending_api_requests/authorization

Environment/global variables
Support environment and global variables defined in the collection, see docs. The conversion to k6 JS must make sure to adhere to the scoping rules defined in https://learning.getpostman.com/docs/postman/environments_and_globals/variables/#variable-scopes.
In general variables in the request URL, params, headers and body will have the form {{someVariable}}. These needs to be set by properly resolving the variable.
Relevant links:

https://docs.k6.io/docs/environment-variables
https://www.getpostman.com/docs/v6/postman/environments_and_globals/variables

Dynamic variables
The conversion needs to support Postman’s dynamic variables that can be present in the request URL, params, headers and body:

{{$guid}}: Adds a v4 style GUID
{{$timestamp}}: Adds the current timestamp
{{$randomInt}}: Adds a random integer between 0 and 1000

Data variables
The conversion needs to support what’s called “data variables” in Postman, see docs. This is parameterization data loaded from a CSV or JSON file and then used in request URL, params, headers, body or pre-/post-request scripts.
In scripts
In scripts you get variables (global, environment, dynamic or data) by using one of the APIs, see Scripting below.
Scripting
Postman has support for JS scripting in the form of pre-request scripts and post-response test scripts. By providing a shim layer in the converted script to support the Postman Sandbox execution environment, where pre-/post-requests scripts are executed, we should be able to provide a much more useful conversion tool from Postman to k6 for doing load testing.
Shimming
The shim layer could either be embedded in the converted script (or as a module that the converter spits out and the main file loads) or fetched from k6 github perhaps as a remote import, something like:
import postman from “github.com/loadimpact/k6/master/shims/postman-sandbox.js”;

Pre-/Post-request scripts/tests
These are currently appended as comments in the k6 script, but will now need to be inserted into k6 verbatim, with the necessary Postman APIs made available by the shim layer. See pre-request scripts docs and post-request test scripts for more info.
Support both pre-request scripts specified for a collection, a folder and an individual request (respecting the execution order of scripts).
Postman Sandbox APIs
The following Postman Sandbox APIs needs to be supported/shimmed:

It will include making some third-party libs available by default (see list in API docs). This could probably be handled by inserting them as imports to be loaded by the supported CDN/Github loaders in k6.

Lodash library
cheerio library
CryptoJS library

General

postman.getResponseHeader(headerName)
xml2Json(xmlString)

Environment and global variables

postman.setEnvironmentVariable(variableName, variableValue)
postman.getEnvironmentVariable(variableName)
postman.setGlobalVariable(variableName, variableValue)
postman.getGlobalVariable(variableName)
postman.clearEnvironmentVariable(variableName)
postman.clearGlobalVariable(variableName)
postman.clearEnvironmentVariables()
environment (a global object variable used by the functions above)
globals (a global object variable used by the functions above)

Dynamic variables

{% raw %}{{$guid}}{% endraw %}: Adds a v4 style GUID
{% raw %}{{$timestamp}}{% endraw %}: Adds the current timestamp.
{% raw %}{{$randomInt}}{% endraw %}: Adds a random integer between 0 and 1000

Cookies

responseCookies (array variable with response cookies for current response)
postman.getResponseCookie(cookieName)

Request/response related properties

request (object with request attributes)

data (key/value form data object)
headers (key/value object with request headers)
method
url

responseHeaders (key/value object with response headers)
responseBody (string, use JSON.parse or xml2json to parse it)
responseTime (number, total response time in milliseconds)
responseCode (object)

code
name
detail

tests (object with the users “checks”/”asserts”, boolean results of logical tests)
iteration (number, the current test run index)

Data files

data (object with parsed CSV or JSON data, each VU and iteration in k6 would need to fetch a new row of data, see this blog post)

All APIs in the Postman Sandbox API reference (the pm object, which is only available in Postman, not Newman): https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference/

Except the require()’ing of Nodejs modules, that should result in an error message saying “Can’t load module X, Node.js modules aren’t supported in k6”
pm.sendRequest(url|requstObject, callback) this call would need to be synchronous in k6, so it wouldn’t return until the callback function is done executing.

@mul1sh Do you push your WIP code to github? As this task is quite big, it'd be great if I could follow the progress in a branch of your fork (https://github.com/mul1sh/postman-to-k6) to avoid having a huge PR to review in the end. It would also help avoid potential frustration as part of the review process if I have to request time consuming refactorings 🙂

@robingustafsson i'll push today. Sorry for the delay, I was first going through the k6 documentation and the existing converter code to make I fully understood the current functionality, which I think i do .
So anyway working on the WIP PR now as indicated above and then i push the required functionality in chunks till the issue is closed.

@mul1sh Any update on the WIP code? I'm not expecting anything to be functional, it's more to get a feel for how you're approaching the project and the code quality so we can course correct early if necessary 🙂

@robingustafsson yes its coming in less than 6 hours, sorry I was still going back and forth in the k6 docs there are some things i didn't fully grasp but now I do. So actually working on the PR now

@robingustafsson finally a PR 😄 even though it didn't exactly take 6 hours as promised because I still had some learning to do for K6.
Nonetheless expect more commits till we're done, I'm planning to wrap this up by Wednesday because i'm actively working on it and I fully understand how k6 works now.

@mul1sh Great, I'll have a look.

bookmoons/improve has something toward this. All the auth methods except OAuth are implemented.
I've reorganized the code a little. It was kind of difficult to work with.

There seemed to be no consistent style. There was an obsolete linter installed, but it didn't even seem to be used. Ran it and it found hundreds of issue. I've normalized instead to StandardJS, which has good tool support, and corrected a some issues it found (including some crashing errors). Is that an acceptable style?
Removed callbacks from the conversion logic. They were completely unused. Everything is happening synchronously.
Enabled CircleCI.

Re the AWS auth method: The signature module, awkwardly, requires a decomposed URL. Since the entire URL could come from a variable at runtime, it has to be decomposed at runtime. So I've had to add urijs as another dependency. At the moment I have these as a manual build requirement.

I'm not sure there's a way to get access to the cookies and certificates. They seem to be treated as a local workspace thing and don't get included in exports. I asked these questions about it on the forum but so far no love.
How to export cookies?
How to export certificates?

@bookmoons Nice, great progress and I'm glad to see you cleaned up the code, super!

Regarding the styling, StandardJS looks fine to me. Talked with our JS devs as well and we'd prefer to always use curly-braces for statements where StandardJS allows to remove them, eg.:

if (options.quiet !== true) {
  console.log('done')
}

instead of
if (options.quiet !== true) console.log('done')

Makes the code a bit less compact, but a bit more readable.

AWS v4 auth: yeah not ideal with external deps but as we don't have all the necessary APIs in k6 itself yet it will have to do for now.
Cookies: ok, if it turns out cookies are not included in the collection there's not much we can do. I misunderstood the docs then regarding the "cookie manager" available in the Postman app.
TLS client certs: ok, maybe I misunderstood the docs here as well. I guess it makes sense that you'd not include cert keys in the collection.

Talked with our JS devs as well and we'd prefer to always use curly-braces for statements where StandardJS allows to remove them

Will update this. How do you guys feel about indenting in switches?
switch (variable.type) {
  case 'boolean': return VariableType.Boolean
  case 'json': return VariableType.Json
  case 'number': return VariableType.Number
  case 'string': return VariableType.String
}

switch (variable.type) {
  case 'boolean':
    return VariableType.Boolean
  case 'json':
    return VariableType.Json
  case 'number':
    return VariableType.Number
  case 'string':
    return VariableType.String
}

@bookmoons We'd prefer the second one 🙂

Alright, updated all of that indenting. Also documented these things in STYLE.

OAuth and auth inheritance are in. Everything in the Authentication section is done.

I want to propose dropping the default for the -j version option. Currently v2 is default. If you run on a v1 file it fails with some obscure error.
I have version detection in. So if we just drop the default and let it detect v1, users will get a more meaningful error.

Yeah, that sounds like a better UX to me as well, go ahead and drop -j.

Yeah, that sounds like a better UX to me as well, go ahead and drop -j.

Done.

All the nonlocal variables are implemented, including dynamic.
Environments and global variables have to be exported separately from Postman, so I've added CLI options to read them. Data files don't seem to be in any exports so I've just created options for them where you provide a path.
  -g --global <path>       JSON export of global variables.
  -e --environment <path>  JSON export of environment.
  -c --csv <path>          CSV data file. Used to fill data variables.
  -j --json <path>         JSON data file. Used to fill data variables.

Nice, thanks for sharing your progress, looks great! I'll test the converter a bit in the next few days.

The shim is not deploying at the moment, so if you go to do tests lib/shim.js has to be copied to ./postman-shim.js.

Have just restructured this, lib/shim/core.js is the one to copy now.

I think everything possible is implemented. Have just submitted #16 to start it off. I'm ready to jump on bug fixes.

Fantastic, will start reviewing the PR tomorrow.

Closed by https://github.com/loadimpact/postman-to-k6/pull/16.


Question: How can I mount a hosts block device into an LXD container?

How can I mount a hosts block device into an LXD container?
I only found examples how to mount Hosts Directory into the container.
The only way I could figure out is to mount a block device sdb  to the Host Server (Mount path /mnt/postgres01) and then add it to the container with:
sudo lxc config device add postgres2 sdb disk source=/mnt/postgres01 path=ssd_drive

can you please provide an example how to mount the sdb device into the container directly without a mounting first to the host (or at least suggest a path for the mount dir on the host)

If the source is a block device, lxd will have the kernel mount it for you. So exact same syntax but set source= to point to the block device path.

root@castiana:~# truncate -s 10G abc.img

root@castiana:~# mkfs.ext4 abc.img
mke2fs 1.43.3 (04-Sep-2016)
Discarding device blocks: done
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: ed35c695-f2ba-491a-8307-84b851e4b565
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

root@castiana:~# losetup -f abc.img

root@castiana:~# losetup -a
/dev/loop0: [0023]:2535034 (/root/abc.img)

root@castiana:~# lxc config device add abc my-disk disk source=/dev/loop0 path=/mnt/abc
Device my-disk added to abc

root@castiana:~# lxc exec abc -- df -h
Filesystem                Size      Used Available Use% Mounted on
encrypted/lxd/containers/abc
                        167.3G      4.4M    167.3G   0% /
none                    492.0K         0    492.0K   0% /dev
udev                      9.7G         0      9.7G   0% /dev/fuse
udev                      9.7G         0      9.7G   0% /dev/net/tun
df: /sys/kernel/debug/tracing: Permission denied
/dev/nvme0n1p2           25.0G      5.3G     19.4G  21% /dev/lxd
/dev/nvme0n1p2           25.0G      5.3G     19.4G  21% /dev/.lxd-mounts
udev                      9.7G         0      9.7G   0% /dev/null
udev                      9.7G         0      9.7G   0% /dev/zero
udev                      9.7G         0      9.7G   0% /dev/full
udev                      9.7G         0      9.7G   0% /dev/urandom
udev                      9.7G         0      9.7G   0% /dev/random
udev                      9.7G         0      9.7G   0% /dev/tty
tmpfs                     1.9G     52.0K      1.9G   0% /run
/dev/loop0                9.8G     36.0M      9.2G   0% /mnt/abc

Thanks for quick reply.  I run ubuntu on gce an added a disk which I can see as "sdc"
root@gruen-lxd-docker:/var/lib/lxcfs# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
..
sdc      8:32   0   10G  0 disk
What ist the "source= to point to the block device path"??

source=/dev/sdc

I created ist as "blank"  Is formatting necessary?

I formated the device conforming to google
https://cloud.google.com/compute/docs/disks/add-persistent-disk
The it works in a privileged container.
lxc launch ubuntu:xenial <container name> -c security.privileged=true
I an unprivileged container (default) I dont have access:
root@skltest01:/ssd_drive2# mkdir test
mkdir: cannot create directory 'test': Permission denied```

Is there a way to use it in an unprivileged container???

Best regards
Stefan

@sklosedr thats a normal permission problem, mount it on the host then chown it to your needs.
like:
chown 100000:100000 /mnt/<your-gce-disk-mountpath>/

Then mount it again into the container.

Oh yeah, forgot to show that in my example. You indeed need to either chown the root of the fs so that the container owns it or you need to chmod it so everyone can write to it.
Anyway, sounds like we've covered this question, so closing the issue.

@pcdummy @stgraber Is there an elegent way of getting the user ID to use with chown? I've used this stackoverflow answer to determine that the ID I should use is 165536. And from what I see, all the containers are using the same ID.

@butla containers aren't guaranteed to share the same ID. The "security.idmap.isolated" setting if set will actually make sure that they do not.
One trick that usually works so long as the container filesystem is mounted is to look for the owner of /var/lib/lxd/containers/NAME/rootfs. Otherwise the only really reliable way is to grab the container map using "lxc config show" (volatile.last_state.idmap) but that can get pretty complex.

@stgraber thanks!


Fix symlink/hardlink support and add path mapping support to CLI

Signed-off-by: Brad Davidson<EMAIL_ADDRESS>

@phillipsj the second commit here seems to get me the proper behavior on Windows.

@brandond can you please pull a Windows image on Windows to make sure that it works, your test is only doing Linux.

@brandond can you please pull a Windows image on Windows to make sure that it works, your test is only doing Linux.

@brandond please do pull the Windows image as @phillipsj suggests

@phillipsj can you provide a sample Windows image?

That was the exact use case that was failing.
docker pull rancher/system-agent-installer-rke2:v1.22.3-rc2-rke2r1

The path to extract is /Files/bin

When in doubt, add tests! Then fix them. Apologies for not having these in the first place. CI doesn't test Windows but I'm building and testing there locally.

@phillipsj output on windows:
C:\Users\brandond\repos\github.com\rancher\wharfie>wharfie.exe --debug rancher/system-agent-installer-rke2:v1.22.3-rc2-rke2r1 /Files/bin:C:\temp\bin\
time="2021-11-03T16:47:48-07:00" level=info msg="Extract mapping /Files/bin => C:\\temp\\bin"
time="2021-11-03T16:47:48-07:00" level=info msg="Pulling image index.docker.io/rancher/system-agent-installer-rke2:v1.22.3-rc2-rke2r1"
time="2021-11-03T16:47:49-07:00" level=debug msg="Skipping file Files"
time="2021-11-03T16:47:49-07:00" level=debug msg="Skipping file Hives"
time="2021-11-03T16:47:49-07:00" level=debug msg="Skipping file Hives/DefaultUser_Delta"
time="2021-11-03T16:47:49-07:00" level=debug msg="Skipping file Hives/Sam_Delta"
time="2021-11-03T16:47:49-07:00" level=debug msg="Skipping file Hives/Security_Delta"
time="2021-11-03T16:47:49-07:00" level=debug msg="Skipping file Hives/Software_Delta"
time="2021-11-03T16:47:49-07:00" level=debug msg="Skipping file Hives/System_Delta"
time="2021-11-03T16:47:50-07:00" level=info msg="Creating directory C:\\temp\\bin"
time="2021-11-03T16:47:50-07:00" level=info msg="Extracting file Files/bin/installer.ps1 to C:\\temp\\bin\\installer.ps1"
time="2021-11-03T16:47:50-07:00" level=info msg="Extracting file Files/bin/rke2.windows-amd64.tar.gz to C:\\temp\\bin\\rke2.windows-amd64.tar.gz"
time="2021-11-03T16:47:52-07:00" level=info msg="Extracting file Files/bin/sha256sum-amd64.txt to C:\\temp\\bin\\sha256sum-amd64.txt"
time="2021-11-03T16:47:52-07:00" level=info msg="Extracting file Files/bin/run.ps1 to C:\\temp\\bin\\run.ps1"
time="2021-11-03T16:47:53-07:00" level=debug msg="Skipping file Files/License.txt"
time="2021-11-03T16:47:53-07:00" level=debug msg="Skipping file Files/ProgramData"

@brandond Can I ask why this was merged when #4 was already in?

#4 didn't pass tests?


Storing merge candidates for manual merge process

Deduplication process on mpi based on config parameters min_manual_score/max_manual_score should behave differently

if status=NEW and score >= max_manual_score then make auto termination of declaration and person and change status to MERGED
if status=NEW and score in range [min_manual_score, max_manual_score) then write such pairs to dedupe DB in table manual_merge_candidates based on erd and change status to MANUAL

pairs are not saved in manual_merge_candidates based


Previewing fails with AssertionError: Data is too big

I am getting this error while trying to preview a screen in desktopMain. This has not been an issue until today for some reason.
@Preview
@Composable
fun TestPreview() {
    Text("preview")
}

java.lang.AssertionError: Data is too big:<PHONE_NUMBER> >= 8192
	at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.RemoteConnectionImpl.readData(RemoteConnection.kt:139)
	at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.RemoteConnectionImpl.receiveCommand(RemoteConnection.kt:87)
	at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.CommandsKt.receiveConfigFromGradle(commands.kt:89)
	at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.PreviewManagerImpl$special$$inlined$repeatWhileAliveThread$default$4.invoke(PreviewManager.kt:312)
	at org.jetbrains.compose.desktop.ui.tooling.preview.rpc.PreviewManagerImpl$special$$inlined$repeatWhileAliveThread$default$4.invoke(PreviewManager.kt:283)
	at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)

I think it is this line that needs to be increased:
https://github.com/JetBrains/compose-multiplatform/blob/9a9602d10f57122fb6b2fd8c1937bb512b9a58ae/gradle-plugins/preview-rpc/src/main/kotlin/org/jetbrains/compose/desktop/ui/tooling/preview/rpc/constants.kt#L10
The captured dump of previewing
cap.txt

Please, create issues in YouTrack
https://github.com/JetBrains/compose-multiplatform/issues/5102

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Improve package script

Friendly OS name for packaged zips
Options to skip test and toolchain building
Fix problems running on Windows

Unfortunately we can't build 64bit and 32 bit Windows binary on a 64bit machine. Seeing issues like this. A solution is to build 64bit hub on a 64bit machine and 32bit hub on a 32bit machine. It's annoying but get us unblock for now.

Nice! How do the conventions by which we name binaries affect the auto-updater functionality in the long run?

@mislav The name changes affect the name of the directory containing the binary and the tar file name while the binary name is still hub. However, auto-update is currently broken due to the tar file name changes. I'll mark it down in Trello as TODO when we want to turn this feature on.


fix: Configurable OAuth2 login page security

I just saw that the spring-cloud-dataflow-ui checks if the user has authenticated and is logged in.
See:
https://github.com/spring-cloud/spring-cloud-dataflow-ui/blob/main/ui/src/app/app.component.ts#L12
and
https://github.com/spring-cloud/spring-cloud-dataflow-ui/blob/main/ui/src/app/security/service/security.service.ts
So I adjusted the httpSecurity as you can see in the Files changed

I fixed the order and now the pattern is working also with /**


frame::benchmarking: Support custom Config trait

When creating a benchmark, sometimes it requires special logic. Currently we add this logic to the main Config trait, hidden behind the runtime-benchmarks feature flag. It would be cleaner if there would be a benchmarking specific Config trait. This trait could maybe set the pallet Config trait directly as super trait and then we may not need to change that much?
CC @ggwpez @sam0x17

Pallet NFT is grouping all benchmark related things into its own trait, so it just adds one item to the Config.
Do you mean we should add a new item like #[pallet::benchmark_config] to the pallet?
Benchmarks already support where bounds, so maybe it is enough to add <T as Config>: BenchmarkHelperTrait and then have a impl pallet::BenchmarkHelperTrait for Runtime in the runtime file without any change in FRAME.

Do you mean we should add a new item like #[pallet::benchmark_config] to the pallet?

Yeah something like this.
trait BenchmarkingConfig: pallet::Config {
    type Whatever;
}

In the end this is just some "cosmetic". IMO it feels "dirty" to add the benchmarking helper to the main pallet Config.

This seems reasonable to me


Instrument Reflex processing in development and log a summary

Enhancement
Description
Tracks time spent processing a Reflex and spits out a summary in the logs (in development) on completion, eg:
Processed LikeReflex#like in 28.8ms (Views: 5.4ms | ActiveRecord: 9.3ms | Allocations: 13497)

Why should this be added
It's nice to see the summaries when optimising querying / rendering.
Checklist

[ ] My code follows the style guidelines of this project
[ ] Checks (StandardRB & Prettier-Standard) are passing

Before (wall of text):

After (summaries and newline):

I just ran this in my app and encountered this error when calling a reflex, do you have a hunch what this could be about?
Reflex FolderReflex#edit failed: wrong number of arguments (given 5, expected 1) [http://localhost:3000/]
/Users/marcoroth/Development/stimulus_reflex/lib/stimulus_reflex/instrumentation.rb:11:in `block (2 levels) in track'
/Users/marcoroth/.anyenv/envs/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications/fanout.rb:186:in `finish'
/Users/marcoroth/.anyenv/envs/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications/fanout.rb:63:in `block in finish'
/Users/marcoroth/.anyenv/envs/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications/fanout.rb:63:in `each'
/Users/marcoroth/.anyenv/envs/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications/fanout.rb:63:in `finish'
/Users/marcoroth/.anyenv/envs/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications/instrumenter.rb:45:in `finish_with_state'
/Users/marcoroth/.anyenv/envs/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/activesupport-<IP_ADDRESS>/lib/active_support/notifications/instrumenter.rb:30:in `instrument'
/Users/marcoroth/.anyenv/envs/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/activerecord-<IP_ADDRESS>/lib/active_record/connection_adapters/abstract_adapter.rb:687:in `log'

Yikes! First thought from eyeballing the stacktrace; is the public interface for Benchmark.realtime is different between Ruby versions? Something there is expecting a different number of arguments.
I'll take a look...

It's related to changes in ActiveSupport::Notifications between Rails versions... it works fine in 7.1.3 :disappointed:

I just tried a quick dirty-downgrade to Rails 6 to check this out and it looks like if the callback passed to ActiveSupport::Notifications.subscribed is a Lambda in Rails 6 it doesn't like it(?), but changing it to a Proc fixes the issue and also works fine in 7.0 and 7.1.

Thanks for giving this a look @Matt-Yorkley! Seems like that did the trick!
The only other thing I noticed is that the log entries can appear out-of-order. But, I'm not sure we can actually do something about this:

Do you see a way how we could resolve this? If not, we can probably merge this as-is.

Are you doing a page morph? It looks like the reflex finishes, then a controller instance is handling a page render, then the broadcast is going out via ActionCable?
Might be getting a bit philosophical here, but is that order even incorrect?