libxcb not found on OpenBSD 7.4

1⃣ The changes introduced with #788 to fix #785 do not work for OpenBSD 7.4 (and likely previous versions) as the path for X11 window system files on OpenBSD is /usr/X11R6 (see OpenBSD hier(7)) and differs from NetBSD's path, i.e. /usr/X11R7 (see NetBSD hier(7)).
2⃣ Furthermore the filename for libxcb on OpenBSD 7.4 is libxcb.so.4.1 rather than libxcb.so.1 or libxcb.so.2. I don't know where the .4.1 suffix on OpenBSD comes from, but will keep investigating.
A read-only mirror of the sources for the OpenBSD X11 window system are available at openbsd/xenocara and may provide further insight.

as the path for X11 window system files on OpenBSD is /usr/X11R6 and differs from NetBSD's path, i.e. /usr/X11R7

Heh. X11R6 was released in 1994 and X11R7 in something like 2013. I guess this just a change "let's not change the version number in this path since it would break too much stuff". And now we have this inconsistency. And apparently not even the dynamic loader's default search path can paper over this (I assume - I saw something like that in #785). Fun. Not.

Furthermore the filename for libxcb on OpenBSD 7.4 is libxcb.so.4.1 rather than libxcb.so.1 or libxcb.so.2. I don't know where the .4.1 suffix on OpenBSD comes from, but will keep investigating.

Yay. And in #785 I concluded exactly the opposite. :see_no_evil:

A read-only mirror of the sources for the OpenBSD X11 window system are available at openbsd/xenocara and may provide further insight.

https://github.com/openbsd/xenocara/blob/a812a0d861ff67f4c3dbd13f0753738a2bfe5990/lib/libxcb/libxcb/shlib_version seems relevant. No idea what this means, but it says major=4 and minor=1. So... is OpenBSD explicitly overriding the version info from libxcb!? All the libraries seem to have such a file, but can't find any reasoning for it.
They seem to have invented their own, arbitrary versioning? The update to libxcb 1.6 switches from 2.0 to 2.1, for whatever reason. The commit before that seems to introduce the file.
Since I don't really understand this: @afh Do you want to send a PR that works for you? I'd just trust you on this.
...but I don't actually know what the PR should look like. If we just hardcode libxcb.so.4.1, then this breaks the next time they update libxcb. Is there really no libxcb.so.4 in sight anywhere?!

Thank you for the quick response, @psychon, much appreciated!
Your findings regarding the OpenBSD specific libxcb shlib_version file are helpful; could be interesting to understand more about the motivation of the OpenBSD / xenocara project for doing so.
Reading the OpenBSD and NetBSD manpage for dlopen(3) and doing a quick investigation first using C and dlopen and then using Rust and libloading (see below) it appears that using "just the name of the shared library itself", i.e. libxcb.so seems to be the best option as the library is loaded without the need to update xc11rb when changes occur in the shared library filepath or -name as the loading relies on the mechanisms provided by the underlying operating system.
Excerpt from the OpenBSD and NetBSD manpage for dlopen(3)
Quoting from OpenBSD dlopen(3) (with added emphasis):

The path parameter can be specified as either an absolute pathname to a shared library or just the name of the shared library itself.[...] When just a shared library is specified, the same paths will be searched that are used for “intrinsic” shared library searches.
Shared libraries take the following form:
lib.so[.xx[.yy]

Quoting from NetBSD dlopen(3) (with added emphasis):

The dlopen() function takes the name of a shared object as the first
argument.  The path argument can be specified as either an absolute pathname to a shared object or just the name of the shared object itself.
[...]  When just a shared object name is specified, the same search
rules apply that are used for ``intrinsic'' shared object searches.  (see
ld.elf_so(1))
Shared libraries take the following form: ``lib.so[.xx[.yy]]''.

Investigation for shared library loading with C and dlopen(3) on OpenBSD
int main (int argc, char* argv[]) {
        for (int i = 1; i < argc; i++) {
                const char* libname = argv[i];
                void* handle = dlopen(libname, RTLD_LAZY);
                if (handle == NULL) {
                        printf("Unable to dynamically load %s\n", libname);
                } else {
                        printf("%s loaded at %p\n", libname, handle);
                        dlclose(handle);
                }
        }
        exit(EXIT_SUCCESS);
}

% ./dlopen-test /usr/X11R7/lib/libxcb.so.2 /usr/X11R6/lib/libxcb.so.4.1 /usr/X11R6/lib/libxcb.so.4 /usr/X11R6/lib/libxcb.so libxcb.so.4.1 libxcb.so.4 libxcb.so libxcb.so.1 libxcb.so.2
Unable to dynamically load /usr/X11R7/lib/libxcb.so.2
/usr/X11R6/lib/libxcb.so.4.1 loaded at 0x65e33fa0800
/usr/X11R6/lib/libxcb.so.4 loaded at 0x65e33fa0000
/usr/X11R6/lib/libxcb.so loaded at 0x65e3a5a5800
libxcb.so.4.1 loaded at 0x65ebba2d800
libxcb.so.4 loaded at 0x65e3a5a5800
libxcb.so loaded at 0x65e49bb8000
Unable to dynamically load libxcb.so.1
Unable to dynamically load libxcb.so.2

Investigation for shared library loading with Rust and libloading on OpenBSD
// I'm rather unfamiliar with Rust programming,
// so hopefully the snippet below does not cause too
// much pain while reading. Happy to hear helpful comments :)
use std::env;

fn main() {
    let args: Vec<_> = env::args().collect();

    for arg in &args[1..] {
        print!("Trying to load {}: ", arg);
        unsafe {
            let libname = arg;
            let lib = libloading::Library::new(libname)
                .map_err(|e| println!("failed due to: {}", e));
            match lib {
                Ok(_) => { println!("success!"); }
                Err(_) => {  }
            }
        }
    }
}

% clear;cargo run -- /usr/X11R7/lib/libxcb.so.2 /usr/X11R6/lib/libxcb.so.4.1 /usr/X11R6/lib/libxcb.so.4 /usr/X11R6/lib/libxcb.so libxcb.so.4.1 libxcb.so.4 libxcb.so libxcb.so.1 libxcb.so.2
Trying to load /usr/X11R7/lib/libxcb.so.2: failed due to: File not found
Trying to load /usr/X11R6/lib/libxcb.so.4.1: success!
Trying to load /usr/X11R6/lib/libxcb.so.4: success!
Trying to load /usr/X11R6/lib/libxcb.so: success!
Trying to load libxcb.so.4.1: success!
Trying to load libxcb.so.4: success!
Trying to load libxcb.so: success!
Trying to load libxcb.so.1: failed due to: File not found
Trying to load libxcb.so.2: failed due to: File not found

@psychon Are the code snippets from the investigation enough proof for you or would you prefer an actual test with and within x11rb?
I'd be happy to provide an appropriate PR with a bit of guidance from you (or another maintainer or willing person) in regards to writing a test or Minimum Viable Example (MVE).

Can you post the output of readelf -d executable for some executable that is directly linked to libxcb? That should tell us the name we should search for and whether there is a RPATH.

I googled a bit around and ended up looking at https://cdn.openbsd.org/pub/OpenBSD/7.4/packages/amd64/. I now have to do some guessing.  Bingo. pixman and libX11 have an absolute path (I didn't even know this is possible), but xcb is just listed at `libxcb.so.4.1`.
readelf -d lib/libcairo.so.13.3
Dynamic section at offset 0x14a510 contains 34 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.27.1]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.10.1]
 0x0000000000000001 (NEEDED)             Shared library: [libz.so.7.0]
 0x0000000000000001 (NEEDED)             Shared library: [libpng.so.18.0]
 0x0000000000000001 (NEEDED)             Shared library: [libfontconfig.so.13.1]
 0x0000000000000001 (NEEDED)             Shared library: [libfreetype.so.30.3]
 0x0000000000000001 (NEEDED)             Shared library: [/usr/X11R6/lib/libX11.so.18.0]
 0x0000000000000001 (NEEDED)             Shared library: [/usr/X11R6/lib/libXext.so.13.0]
 0x0000000000000001 (NEEDED)             Shared library: [/usr/X11R6/lib/libXrender.so.6.0]
 0x0000000000000001 (NEEDED)             Shared library: [libxcb.so.4.1]
 0x0000000000000001 (NEEDED)             Shared library: [libxcb-render.so.1.1]
 0x0000000000000001 (NEEDED)             Shared library: [libxcb-shm.so.1.1]
 0x0000000000000001 (NEEDED)             Shared library: [/usr/X11R6/lib/libpixman-1.so.40.0]
 0x000000000000000e (SONAME)             Library soname: [libcairo.so.13.3]
 0x0000000000000007 (RELA)               0xbf00
 0x0000000000000008 (RELASZ)             20976 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffff9 (RELACOUNT)          862
 0x0000000000000017 (JMPREL)             0x110f0
 0x0000000000000002 (PLTRELSZ)           8496 (bytes)
 0x0000000000000003 (PLTGOT)             0x14c798
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000006 (SYMTAB)             0x350
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000005 (STRTAB)             0x7720
 0x000000000000000a (STRSZ)              18399 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x5290
 0x0000000000000004 (HASH)               0x5ec0
 0x000000000000000c (INIT)               0x140080
 0x000000000000000d (FINI)               0x1400a0
 0x000000006ffffff0 (VERSYM)             0x4c58
 0x000000006ffffffe (VERNEED)            0x5270
 0x000000006fffffff (VERNEEDNUM)         1
 0x0000000000000000 (NULL)               0x0

I haven't figured out how to find the binary package containing libxcb yet. "xcb" is some x11 cut buffer CLI utility".

Ah, I found the binary package containing libxcb. It is https://cdn.openbsd.org/pub/OpenBSD/7.4/amd64/xbase74.tgz. And the SONAME is really just libxcb.so.4.1 without anything magic here either. So, apparently /usr/X11R6/lib/ must be in the linker's default search path.
readelf -d usr/X11R6/lib/libxcb.so.4.1
Dynamic section at offset 0x2dc90 contains 20 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libXau.so.10.0]
 0x0000000000000001 (NEEDED)             Shared library: [libXdmcp.so.11.0]
 0x000000000000000e (SONAME)             Library soname: [libxcb.so.4.1]
 0x0000000000000007 (RELA)               0xb5d8
 0x0000000000000008 (RELASZ)             432 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffff9 (RELACOUNT)          6
 0x0000000000000017 (JMPREL)             0xb788
 0x0000000000000002 (PLTRELSZ)           1944 (bytes)
 0x0000000000000003 (PLTGOT)             0x2fdf8
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000006 (SYMTAB)             0x350
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000005 (STRTAB)             0x7024
 0x000000000000000a (STRSZ)              17843 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x47f0
 0x0000000000000004 (HASH)               0x593c
 0x000000000000000c (INIT)               0x2c240
 0x000000000000000d (FINI)               0x2c260
 0x0000000000000000 (NULL)               0x0

The sources for this should be in https://cdn.openbsd.org/pub/OpenBSD/7.4/xenocara.tar.gz but I haven't downloaded that file or looked into it. Xenocara is apparently some fish species known for cleaning aquarium windows...
Anyway, I guess this means OpenBSD affords to rebuild everything on new xcb releases and does not offer any kind of API stability.

it appears that using "just the name of the shared library itself", i.e. libxcb.so seems to be the best option

I haven't figured out where that libxcb.so file comes from. It is not part of any of the binary packages that I have downloaded so far. Are we sure that this file is always available?
Urgh...

I found the shlib_version magic! But it doesn't help...
The Makefile includes bsd.lib.mk. I haven't found an official source for bsd.lib.mk, but here is a random GitHub repo that claims to be OpenBSD: If the file shlib_version exists in the current directory, its contents are loaded and used to set SHLIB_MAJOR and SHLIB_MINOR. The rest of the file seems to only use this in the form lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}, i.e. to set the name of the output file. I haven't found anything else with this. Nothing in here creates lib${LIB}.so without a further extension, so no libxcb.so should be created?!
However, `xcb.pc` just mentions `-lxcb` without an extension (but it does mention `-L/usr/X11R6/lib`).
prefix=/usr/X11R6
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
xcbproto_version=1.15.2

Name: XCB
Description: X-protocol C Binding
Version: 1.15
Requires.private: xau >= 0.99.2 xdmcp
Libs: -L${libdir} -lxcb
Libs.private:
Cflags: -I${includedir}

Sorry for the monologe. Here is another entry: I asked #openbsd on Libera. The conclusion is that the options are:

Declare OpenBSD as unsupported
Play "catch up" every time they decide to change the SONAME again (which seems to be every xcb release)

According to this random person there is no libxcb.so and no symlinks for libraries, but he doesn't know how exactly the linker then turns -lxcb into (currently) a NEEDED entry for libxcb.so.4.1.
Dunno how this matches with @afh having such a file.
Hm.... actually... @afh Can you check whether you really have a file called libxcb.so? Perhaps there really is some magic going on that automatically loads libxcb.so.4.1 when the program asks for libxcb.so and I am just completely wrong in assuming that something weird is going on with your system (sorry for that implicit assumption!).

I actually digged into the search code of OpenBSD's dynamic linker. src/libexec/ld.so/sod.c has _dl_build_sod() that turns e.g. "libxcb.so.4.1" into "libxcb.so" major=4, minor=1 and "libxcb.so" into major=-1, minor=-1; this function is used by dlopen() which ends up in src/libexec/ld.so/library_subr.c, dl_find_shlib() which matches things and treats "-1" as "matches" anything (otherwise major has to be == and minor >= the requested).
With that insight, I am totally fine with just using libxcb.so on OpenBSD. In fact, this might be the best option on systems where we know nothing better. Guessing a SONAME has turned out to be a bad idea.
@afh Could you somehow test #896 ?

First of all thanks @psychon and @eduardosm for putting all the work into this issue, very much appreciated! :pray:
Here's the output of readelf as requested:
readelf -d /usr/X11R6/bin/xterm
Dynamic section at offset 0xc9cb0 contains 38 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libXaw.so.15.0]
 0x0000000000000001 (NEEDED)             Shared library: [libXpm.so.9.0]
 0x0000000000000001 (NEEDED)             Shared library: [libXt.so.11.1]
 0x0000000000000001 (NEEDED)             Shared library: [libSM.so.9.0]
 0x0000000000000001 (NEEDED)             Shared library: [libICE.so.11.0]
 0x0000000000000001 (NEEDED)             Shared library: [libXmu.so.11.0]
 0x0000000000000001 (NEEDED)             Shared library: [libXft.so.12.0]
 0x0000000000000001 (NEEDED)             Shared library: [libXrender.so.6.0]
 0x0000000000000001 (NEEDED)             Shared library: [libXinerama.so.6.0]
 0x0000000000000001 (NEEDED)             Shared library: [libX11.so.18.0]
 0x0000000000000001 (NEEDED)             Shared library: [libxcb.so.4.1]
 0x0000000000000001 (NEEDED)             Shared library: [libXext.so.13.0]
 0x0000000000000001 (NEEDED)             Shared library: [libXau.so.10.0]
 0x0000000000000001 (NEEDED)             Shared library: [libXdmcp.so.11.0]
 0x0000000000000001 (NEEDED)             Shared library: [libfontconfig.so.13.1]
 0x0000000000000001 (NEEDED)             Shared library: [libexpat.so.14.0]
 0x0000000000000001 (NEEDED)             Shared library: [libfreetype.so.30.3]
 0x0000000000000001 (NEEDED)             Shared library: [libutil.so.17.0]
 0x0000000000000001 (NEEDED)             Shared library: [libcurses.so.14.0]
 0x0000000000000001 (NEEDED)             Shared library: [libz.so.7.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.97.1]
 0x000000006ffffffb (FLAGS_1)            Flags: PIE
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000007 (RELA)               0x4c18
 0x0000000000000008 (RELASZ)             99408 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffff9 (RELACOUNT)          3039
 0x0000000000000017 (JMPREL)             0x1d068
 0x0000000000000002 (PLTRELSZ)           9048 (bytes)
 0x0000000000000003 (PLTGOT)             0xcc208
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000006 (SYMTAB)             0x3a0
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000005 (STRTAB)             0x3608
 0x000000000000000a (STRSZ)              5644 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x2950
 0x0000000000000004 (HASH)               0x2970
 0x0000000000000000 (NULL)               0x0

For what it's worth I ran usr/X11R6/bin/ | xargs -n1 readelf -d | grep 'libxcb[^-]' and all programs referencing libxcb do so as xterm does in the example above, i.e. without an absolute path.

I haven't figured out where that libxcb.so file comes from. It is not part of any of the binary packages that I have downloaded so far. Are we sure that this file is always available?

libxcb.so.4.1 comes from the architecture specific xbaseXX.tgz (where XX is the version of OpenBSD being installed). So if X is installed on OpenBSD using the standard procedure, then I'm quite certain that libxcb will be available.
There is no libxcb.so file on OpenBSD, but rather as far as I understand the linker automatically loads whatever version is installed (on OpenBSD 7.4 libxcb.so.4.1) when libxcb.so is requested.
I'm using x11rb through alacritty's dependency winit, not sure if it's quick for me to test the changes. Would xtrace-example be a good (enough) test?
Regarding where bsd.lib.mk etc. come form: I'd consider share/mk from openbsd/src a very good source.

I'm using x11rb through alacritty's dependency winit, not sure if it's quick for me to test the changes. Would xtrace-example be a good (enough) test?

Ah, okay. I took a look at the features winit uses and would suggest cargo run --example display_ppm --features allow-unsafe-code,dl-libxcb,randr,resource_manager,xinput,xkb,image. This additionally needs the image feature that winit does not use, but that should not hurt. (Yes, the "image" that this shows is ugly; it is a 2x2 pixel image)
For extra brownie points, you could run the above command with current x11rb master and also with an older version (to make sure it really breaks there).

Thanks for the suggestion. When running the cargo command you suggested on master it fails with signal: 11, SIGSEGV: invalid memory reference (see below). Not sure what to make of that or how to approach debugging it. Any ideas are very welcome.
warning: some crates are on edition 2021 which defaults to `resolver = "2"`, but virtual workspaces default to `resolver = "1"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
   Compiling x11rb-protocol v0.12.0 (/home/afh/Developer/x11rb/x11rb-protocol)
   Compiling x11rb v0.12.0 (/home/afh/Developer/x11rb/x11rb)
error: could not compile `x11rb-protocol` (lib)

Caused by:
  process didn't exit successfully: `rustc --crate-name x11rb_protocol --edition=2021 x11rb-protocol/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="all-extensions"' --cfg 'feature="composite"' --cfg 'feature="damage"' --cfg 'feature="dbe"' --cfg 'feature="default"' --cfg 'feature="dpms"' --cfg 'feature="dri2"' --cfg 'feature="dri3"' --cfg 'feature="extra-traits"' --cfg 'feature="glx"' --cfg 'feature="present"' --cfg 'feature="randr"' --cfg 'feature="record"' --cfg 'feature="render"' --cfg 'feature="request-parsing"' --cfg 'feature="res"' --cfg 'feature="resource_manager"' --cfg 'feature="screensaver"' --cfg 'feature="shape"' --cfg 'feature="shm"' --cfg 'feature="std"' --cfg 'feature="sync"' --cfg 'feature="xevie"' --cfg 'feature="xf86dri"' --cfg 'feature="xf86vidmode"' --cfg 'feature="xfixes"' --cfg 'feature="xinerama"' --cfg 'feature="xinput"' --cfg 'feature="xkb"' --cfg 'feature="xprint"' --cfg 'feature="xselinux"' --cfg 'feature="xtest"' --cfg 'feature="xv"' --cfg 'feature="xvmc"' -C metadata=511b0427c01f03fc -C extra-filename=-511b0427c01f03fc --out-dir /home/afh/Developer/x11rb/target/debug/deps -C incremental=/home/afh/Developer/x11rb/target/debug/incremental -L dependency=/home/afh/Developer/x11rb/target/debug/deps` (signal: 11, SIGSEGV: invalid memory reference)

Uhm. Sorry, I have no idea either. That seems to be the rust compiler crashing...?!?

Thanks for comment, @psychon. I'll see what can I find…


docs: Make doc more clear for spec in rails.

Some new use in factory_bot may forget to add the require to the config file. in addition they don't know the locales of the config file.

@composerinteralia  I place the code in spec/rails_helper.rb It works find for me. Thank you very much.  👍


Using the Perfect World Platform to start cs2 wsad cannot be moved

This is a known problem with the CS2 Perfect World client, and unfortunately, it won't be fixed. This issue has also been mentioned previously. You can find more details here: Issue #42.
SnapKey works as intended with the global CS2 version - the problem may be caused by the client directly, not the input system of the game.


Throttle config load function to avoid abort errors

This PR throttles the config load function to avoid abort errors when rapid succession of request try to get the config

/lgtm


Failable Initializer?

I was thinking it might be nice if the initializer was failable, or maybe throwable.
I know it's probably a rare case, but it's possible that you could get passed some invalid data. With the current implementation, the only thing we can do is come up with default values for it. That might not be the worst thing in the world -- most times the initializer will be called is when there is an actual record in the database, so something needs to be done!
Just a thought :smile:

That's a good idea. I'll keep this open as a reminder to add it.

This has been added.


Would it allow me to save and read the context as a file?

I want to save and read the context as a file for the next conversation, but I found that it cannot be saved as txt. Can you help me to do this?

Agreed, adding the functionality to save and restore context nodes would be very convenient.  This way, we could continue a conversation where we left off at any time, and the content wouldn’t disappear when restarting ComfyUI.

ill check how to store and load it from a file, you need it in a file for what use case? transfer context between 2 workflows?

This is a case where I want to complete a complex task through a series of multiple rounds of dialogue. I hope to be able to reroll it step by step. After completing the first round of dialogue, I need to observe the results to make a choice before proceeding to stage two. But I found that when I use advanced nodes, I cannot save the generated context, enable fixed seeds, and after a period of time, the queue nodes will still be re queued. keep_context options have problems that make the service chaotic or worse to stop running.
这是我的示例，我想使用多轮对话完成复杂任务，我希望能够一步一步地播放节点。在第一轮对话后，我需要根据结果进行选择，然后再播放第二轮。但是我发现高级节点有些小问题并不支持这么做。我第一轮对话生成的上下文，并不能切实地保存住，他好像是临时的，我使用固定种子过一段时间或者重启还是这里的上下文就会消失，即使种子固定下一次的结果也截然不同。我尝试使用 keep_context 选项存在问题，会让多轮对话条件混乱或者更糟 Ollama 会停止运行。
虽然我这里可以避免使用上下文，转而使用拼接结果和指令，进行多轮对话。但是我觉得上下文和输出结果分开保存文件和读取文件更灵活有用，重启之后也可以继续之前的复杂工作。

The web version of Chat has this historical context feature.

added, check 2 new nodes.

Very well, thank you

There are some problems with this

There is also a problem with this, There is no output in the second round of conversation

@mahougigi fixed the load file, my bad missed the param name some how, please update.

@mahougigi regarding the empty replay, i am getting the same, it seems that the response from ollama is empty when given context, i updated ollama yesterday. my version of ollama is 0.3.2
what version you using?

iv opened a bug report on this issue
https://github.com/ollama/ollama/issues/6138
lets see if its on their side.

Thanks for the fix
I reinstalled 0.3.1 and everything works

Very good 0.3.3 is also works


[sqlite3] integration test fails to find 'users' table created by migrations

see issue #31.
Been trying to write an integration test with capybara.
see the file called integration_spec.rb under spec/rails3/spec/.

The problem is that your in_memory.rb environment file is empty. I don't know if it's on purpose but if you fill it in, it works.

That's good news,
fill it with what?

As you're doing an integration test in the in_memory environment I'd say rename the unneeded test.rb environment file to in_memory.rb or copy it's content into your in_memory.rb file. You might want to activate forgery protection in your in_memory environment though
config.action_controller.allow_forgery_protection = true
as this seems to be what you want to test unless I'm mistaken.

Yes.
Excellent.
Sent from my iPad
On Nov 8, 2011, at 11:33 AM, Marc<EMAIL_ADDRESS>wrote:

As you're doing an integration test in the in_memory environment I'd say rename the unneeded test.rb environment file to in_memory.rb or copy it's content into your in_memory.rb file. You might want to activate forgery protection in your in_memory environment though
config.action_controller.allow_forgery_protection = true
as this seems to be what you want to test unless I'm mistaken.

Reply to this email directly or view it on GitHub:
https://github.com/NoamB/sorcery/issues/63#issuecomment-2665438

played some more with the integration test.
I need to change the authenticity token so I uncomment the "page.execute_script" part.
Then RSpec fails due to CapybaraUnsupportedInDriver.
So I add :js => true to the example, and then I get "no such table 'users'" error.
I have no idea what is going on. Any help will be appreciated.


i have literally no clue what's wrong

I do npm install and this pops up (https://gyazo.com/eaf9f2fb13c0d1002d65ac5e0b060e5e)
After that I head into my folder and do npm start and it gives me this message (https://gyazo.com/7692e4c1d4a925000d775d69747b7b2a)
Since I'm a doof and I don't know what that means, I then close it because it means nothing to me. I then get this error message (Attatched file)
Please send help, and be patient this is my first time doing a musicbot
npm-debug copy.txt

Error: Incorrect login details were provided.

For obtaining a Discord Bot token, please see this page.

The WARN in the first screenshot are warnings, those are optional dependencies, you can safely ignore those.
The error in the second screenshot is because you haven't supplied it with a login token, you can create a bot and a token by following this guide https://anidiots.guide/getting-started/the-long-version.html

WILL CHANGE TOKENS AFTER FIXED
You guys are fake news.
As you can see by my two handy gyazos, the token in the .json (https://gyazo.com/81546095906c20721a3005928c35b7bf) is exactly the same as the one that is on my bot page.  (

The error does not lie, if it says incorrect login details have been supplied, then your login details are incorrect.

Could my adminID be wrong? Would I grab the bot's or my own discord account's?

No, your token is wrong, the error is telling you the exact problem, not
your admin ids, or owner ids, it's your token.
On 7 Jul 2017 17:01, "TigerFXX"<EMAIL_ADDRESS>wrote:

Could my adminID be wrong? Would I grab the bot's or my own discord
account's?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/bdistin/OhGodMusicBot/issues/22#issuecomment-313722851,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AT353i5vK54EkPAOV7P0KPvwpVaze4LNks5sLlYxgaJpZM4ORG7g
.

Found my boo boo, the .json won't save in my editor. It's Atom.

And every time I refresh the bot page a new token appears, that's where the problem lies.

That's not a problem. Tokens have a timestamp-based component to it, every token generated even after refreshing is perfectly valid. They all get invalidated if you reset the token.

Now the bot is up and running. When I do the ++play, it says I don't have FFMPEG installed, in which I do. Here is the exact text I put in my Path system variables
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0;c:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;c:\Program Files (x86)\Common Files\Roxio Shared\DLLShared;c:\Program Files (x86)\Common Files\Roxio Shared\DLLShared;c:\Program Files (x86)\Common Files\Roxio Shared\12.0\DLLShared;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\QuickTime\QTSystem;C:\Program Files\nodejs;C:\Program Files (x86)\Skype\Phone;C:\Program Files\Git\cmd;c:\ffmpeg\bin
Is there anything wrong here?

npm install ffmpeg-binaries within the bot folder. problem solved.

Now it can't find an opus engine

npm install node-opus

npm-debug copy.txt

Alright for further support please join the Discord.js guild on https://discord.gg/bRCvFy9


Augmenting Dataset without Classification

I want to augment my dataset without classification using your implementation.
What should I do?
I already ran your implementation but I can't find out how to just use augmentation part of your code.

Please refer to predict_embed in nets.py


Problem in MAC address

I get the following error in one node with Coreos:
Feb 23 10:25:24 ip-10-21-1-161.eu-west-1.compute.internal systemd-networkd[599]: veth6c9ed7f: Gained carrier
Feb 23 10:25:24 ip-10-21-1-161.eu-west-1.compute.internal systemd-timesyncd[533]: Synchronized to time server <IP_ADDRESS>:123 (0.coreos.pool.ntp.org).
Feb 23 10:25:24 ip-10-21-1-161.eu-west-1.compute.internal systemd-networkd[599]: veth6c9ed7f: Configured
Feb 23 10:25:24 ip-10-21-1-161.eu-west-1.compute.internal systemd-timesyncd[533]: Network configuration changed, trying to establish connection.
Feb 23 10:25:24 ip-10-21-1-161.eu-west-1.compute.internal systemd-timesyncd[533]: Synchronized to time server <IP_ADDRESS>:123 (0.coreos.pool.ntp.org).
Feb 23 10:25:24 ip-10-21-1-161.eu-west-1.compute.internal systemd-udevd[14316]: Could not generate persistent MAC address for veth7726b88: No such file or directory
Feb 23 10:25:24 ip-10-21-1-161.eu-west-1.compute.internal systemd-networkd[599]: veth7726b 88: Configured
Feb 23 10:25:24 ip-10-21-1-161.eu-west-1.compute.internal systemd-timesyncd[533]: Network configuration changed, trying to establish connection.
Feb 23 10:25:24 ip-10-21-1-161.eu-west-1.compute.internal systemd-timesyncd[533]: Synchronized to time server <IP_ADDRESS>:123 (0.coreos.pool.ntp.org).
Feb 23 10:25:25 ip-10-21-1-161.eu-west-1.compute.internal systemd-networkd[599]: veth6c9ed7f: Lost carrier
Feb 23 10:25:25 ip-10-21-1-161.eu-west-1.compute.internal systemd-timesyncd[533]: Network configuration changed, trying to establish connection.
Feb 23 10:25:25 ip-10-21-1-161.eu-west-1.compute.internal systemd-timesyncd[533]: Synchronized to time server <IP_ADDRESS>:123 (0.coreos.pool.ntp.org).
Feb 23 10:25:25 ip-10-21-1-161.eu-west-1.compute.internal systemd-networkd[599]: veth6c9ed7f: Removing non-existent address: fe80::42:aff:fef4:425b/64 (valid for ever)

Moreover, I can't run any command of systemctl neither run docker containers. I'm not sure if both errors are related.
How can I solve this problem?

@arkkanoid does this issue relate to fleet?

I'm not sure, it's about network configuration so I expected that this error was related with fleet

@arkkanoid Please create a ticket here: https://github.com/coreos/bugs/issues/new


Adds jsonStrict option

Adds a jsonStrict option that can be passed to co-body for JSON parsing. By default (true), co-body only allows arrays and objects. This allows us to pass false, which allows for all types (such as string literal, etc.)

@ErikAugust Thanks for this! Other than a missing typescript definition, this looks good.
Out of curiosity, did you have a specific reason for wanting to allow parsing "non-strict" JSON?

@MarkHerhold Awesome - the reason is rewriting a legacy REST API endpoint that needed a non-strict response :)


expose createSlice

I found the following pattern hidden in an unittest - why is this not public?
This would be very useful for many array creation, because it would solve NumPy's popular zeros, ones and with createSlice(3,3).diag[] = 1 also identitiy
Moreover I would suggest to use a default type or add some convenience wrappes like the one mentioned from NumPy
auto createSlice(T, Lengths...)(Lengths lengths)
{
    return createSlice2!(T, Lengths.length)(cast(size_t[Lengths.length])[lengths]);
}

///ditto
auto createSlice2(T, size_t N)(auto ref size_t[N] lengths)
{
    size_t length = lengths[0];
    foreach (len; lengths[1 .. N])
        length *= len;
    return new T[length].sliced(lengths);
}

pure nothrow unittest
{
    auto slice = createSlice!int(5, 6, 7);
    assert(slice.length == 5);
    assert(slice.elementsCount == 5 * 6 * 7);
    static assert(is(typeof(slice) == Slice!(3, int*)));
}

For what it is worth I also saw a makeSlice which is based on the new allocator.
import std.experimental.allocator;

auto makeSlice(T, Allocator, Lengths...)(auto ref Allocator alloc, Lengths lengths)
{
    enum N = Lengths.length;
    struct Result { T[] array; Slice!(N, T*) slice; }
    size_t length = lengths[0];
    foreach (len; lengths[1 .. N])
        length *= len;
    T[] a = alloc.makeArray!T(length);
    return Result(a, a.sliced(lengths));
}

unittest
{
    auto tup = makeSlice!int(theAllocator, 2, 3, 4);

    static assert(is(typeof(tup.array) == int[]));
    static assert(is(typeof(tup.slice) == Slice!(3, int*)));

    assert(tup.array.length           == 24);
    assert(tup.slice.elementsCount    == 24);
    assert(tup.array.ptr == &tup.slice[0, 0, 0]);

    theAllocator.dispose(tup.array);
}

Hi @greenify
I plan to add a module for allocation functions. So this function will be implemented

fixed with #38


Do not getting LED Notification

Briefly summarize your issue:
Alexa is not indicating about message received notification.
What is the expected behavior?
Alexa should notify about the received message like this example below.

Alexa did not indicate about new message LED.
Provide the steps to reproduce the issue, if applicable:
Send a message to Alexa using Alexa comms and observe the logs and LED.
Tell us about your environment:
avs-device-sdk-1.18
Spotify ESDK-3.122.67
Adapter v1.8
What version of the AVS Device SDK are you using?
avs-device-sdk-1.18
Tell us what hardware you're using:
Linux-Ubuntu 16.04
Tell us about your OS (Type & version):

[x] Linux
Alexa_no_message_Led_issue.txt

Hi @Alexa-AUH, can you please copy this information to a ticket with your Amazon contact? There is some confidential logging in this issue so I'm going to remove it from the Github post, but please reach out to your Amazon contact and we can keep helping there.

Hi @Alexa-AUH, can you please copy this information to a ticket with your Amazon contact? There is some confidential logging in this issue so I'm going to remove it from the Github post, but please reach out to your Amazon contact and we can keep helping there.


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 207 ms

Resolved: ClamAV performance has improved in a564506.


upgrade ember-cli-htmlbars to v5.6.0

This should fix the unable to locate global object bug in Ember canary. https://github.com/kaliber5/ember-bootstrap/issues/1440#issuecomment-786674780

Seems to cause an issue with @embroider/macros:
 - broccoliBuilderErrorStack: Error: /home/runner/work/ember-bootstrap/ember-bootstrap/ember-bootstrap/components/bs-accordion.js: argument to macroCondition must be statically analyzable
    at macroIfExpression (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/@embroider/macros/src/glimmer/macro-condition.js:43:15)
    at Object.macroIfMustache (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/@embroider/macros/src/glimmer/macro-condition.js:54:18)
    at MustacheStatement (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/@embroider/macros/src/glimmer/ast-transform.js:155:50)
    at visitNode (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/ember-source/dist/ember-template-compiler.js:7718:16)
    at visitArray (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/ember-source/dist/ember-template-compiler.js:7809:20)
    at visitKey (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/ember-source/dist/ember-template-compiler.js:7786:7)
    at visitNode (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/ember-source/dist/ember-template-compiler.js:7740:9)
    at visitKey (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/ember-source/dist/ember-template-compiler.js:7789:20)
    at visitNode (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/ember-source/dist/ember-template-compiler.js:7740:9)
    at visitArray (/home/runner/work/ember-bootstrap/ember-bootstrap/node_modules/ember-source/dist/ember-template-compiler.js:7809:20)

This is the only usage of macroCondition in bs-accordion template: https://github.com/kaliber5/ember-bootstrap/blob/806c40e67887ce12df76f06419eec2145c020395/addon/components/bs-accordion.hbs#L2
Seems to be a regression in ember-cli-htmlbars to me.
//cc @rwjblue

Seems to be a regression in ember-cli-htmlbars to me.

Confirm. Already looked into it: https://github.com/embroider-build/embroider/issues/701

@jelhan can you pease update this to use at least ^5.6.2, which fixes the embroider issue: https://github.com/ember-cli/ember-cli-htmlbars/releases/tag/v5.6.2

Will do as soon as possible but currently away from keyboard. Feel free to push to my feature branch.

Hard to tell if updating ember-cli-htmlbars fixes some of the issues in CI as so many other things are started to fail in parallel. Especially due to the deprecations. Maybe we can relax our deprecation assertions for now to have fewer things to care about in parallel @simonihmig.

Hard to tell if updating ember-cli-htmlbars fixes some of the issues in CI as so many other things are started to fail in parallel.

I hope I can work on these on Friday!


False positive in Lint/RescueWithoutErrorClass

Since v0.50 my project gets false positives with the following code:
begin
  # ...
rescue => ex
  puts ex # or whatnot
end

Ruby Style Guide says this code is good: https://github.com/bbatsov/ruby-style-guide#no-blind-rescues

Expected behavior
No offences.
Actual behavior
% rubocop lib/airbrake-ruby/notice.rb
Inspecting 1 file
W

Offenses:

lib/airbrake-ruby/notice.rb:201:7: W: Lint/RescueWithoutErrorClass: Avoid rescuing without specifying an error class. (https://github.com/bbatsov/ruby-style-guide#no-blind-rescues)
      rescue => ex
      ^^^^^^

1 file inspected, 1 offense detected

Steps to reproduce the problem
Grab this file: https://github.com/airbrake/airbrake-ruby/blob/v2.3.2/lib/airbrake-ruby/notice.rb#L199-L205
RuboCop version
Include the output of rubocop -V. Here's an example:
% rubocop -V
0.50.0 (using Parser <IP_ADDRESS>, running on ruby 2.4.0 x86_64-darwin16)

Cop is working as intended. RuboCop has moved from just enforcing the style guide to be more configurable. Feel free to disable it if you prefer to rescue errors blindly. 🙂
(In this case the style guide should arguably also be changed.)


fix: Use StrongPtr::retain on class methods

Resolves #4
I am not good at Objective-C and/or macOS things, so I do not know this is the correct resolution of this issue. However I confirmed this works without occurring any segmentation faults.

Thanks for the bug fix. However, we would appreciate it if you could wait for a while to merge this fix. We would probably prefer to eliminate the autorelease object and solve everything with runtime::objc_release by Drop Trait.

@suzusuzu Thank you for the investigation. If this pull request resolves the issue not in a good way, feel free to close and supersede it. Thank you.


Plugin tests can't run in non-debug mode

Winter CMS Build
dev-develop
PHP Version
8.1
Database engine
MySQL/MariaDB
Plugins installed
No response
Issue description
When running plugin tests (those inherited from PluginTestCase) with APP_DEBUG set to false I get an error saying:
Error: Call to undefined method Illuminate\Support\Facades\Cache::remember()
This is probably because earlier during the bootstrap process a Cache facade fake was configured to be used as Cache, and /winter/storm/src/Parse/Yaml.php fails to call "remember" on it.
Steps to replicate

Make sure APP_DEBUG=false
Install Winter.Translate
Change to plugins/winter/translate directory
Run ../../../vendor/bin/phpunit

Expected result: the tests pass
Actual result: multiple errors Error: Call to undefined method Illuminate\Support\Facades\Cache::remember()
Workaround
No response

Couple issues, first: PHP 8.1 isn't supported on the develop branch, only dev-wip/1.2 which is our WIP branch for Laravel 9 support.
Second: The issue that triggers that error was fixed in https://github.com/wintercms/winter/commit/9314a4442e2695b3665e2fa2e0cf1788809e02d8, are you sure you have the latest dev-develop?

@LukeTowers  indeed, the fix addresses the issue, thank you for pointing out.


Issue with k8s.io/docs/tasks/run-application/horizontal-pod-autoscale/

This is a Bug Report

Problem:
In the first scaling policies example "When the number of pods is more than 40 the second policy will be used for scaling down. ", where the 40 comes from is not clear
Proposed Solution:
Something like "when the number of replicas is 40, that is when the 10% 2nd policy target is over the first poicy one (4), the 2nd policy will be used"
Page to Update:
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-configurable-scaling-behavior

40 is 4 divided by 10%. I think the page is assuming that the reader can connect the details, whereas it does make sense to explain that clearly.
The point seems to be that the policies are merged by taking maximum of the different calculated values.
Thanks for reporting this @ao-picterra
/priority backlog
/language en
/sig autoscaling


a:000 causes "Cannot delete function F: It is being used internally" (via uf_refcount)

Given t-funcref.vim:
let s:q = []

function! F1(...)
    call add(s:q, [a:000])
endfunction

" Needs two calls.
call F1({})
call F1({})

" Does not works: Cannot delete function F2: It is being used internally
delfunction F1
q

Running nvim -u t-funcref.vim results in:
Error detected while processing …/t-funcref.vim:
line   12:
Cannot delete function F1: It is being used internally

This happens via https://github.com/neovim/neovim/blob/cf93b5e9f9eea1b08ca8d7cb124265867b2f3bf9/src/nvim/eval.c#L21114-L21118, which is not used in Vim.
Adding this check to Vim produces the same error there then.
So this is a problem also in Vim, but it does not make the delfunction fail.
The check in Neovim was added early on in 4b98ea1e8 already, and later adjusted/fixed in b7dab423e.

This was meant for Neovim, of course.


Add devise

Features ⭐ ⭐ ⭐

[ ] - Remove current_user method in ApplicationController, devise will provide us with one.

[ ] Install and setup devise

Can register a new user.
User logs in with a combination of email and password.
Hashed password should be stored in the database.
Ask for confirmation of email.
Can reset password.

[ ] Modify the views in devise for registration and login to match the wireframes from the Sneak Peek

I am working solo in this project by the way

@frank1738 please check the PR description, I mention that I am working solo and I have no partners this week

@frank1738 please check the PR description, I mention that I am working solo and I have no partners this week

Hello @otmaneechchafyky . Thanks for the update. Looks like you updated the information after ta review was made. Kindly resubmit your PR for another review

@frank1738 I did brother, if you have time can you review it please.

@frank1738 I did brother, if you have time can you review it please.

A review will be made shortly👍

Thank you


Bugfix in matrix multiplication in output computation in iosys.LinearIOSystem

Hi,
I believe the _out method in iosys.LinearIOSystem does not perform the matrix multiplication correctly when not using the numpy matrix class, since it uses * instead of dot().
The following snippet reproduces the incorrect behavior:
import numpy as np
import control as ct
if __name__ == '__main__':
	ct.use_numpy_matrix(flag=False);
	A = np.array([[0.5, 0.7], [0, -0.8]]);
	B = np.array([[0], [1]]);
	C = np.array([[1, 0]]);
	D = np.array([[0]]);
	iosys = ct.iosys.LinearIOSystem(ct.StateSpace(A, B, C, D));
	x0 = np.array([1.1,-0.9]);
	u0 = np.array([0.5]);
	ct.iosys.linearize(iosys, x0, u0);

The change implemented is consistent with what performed by the _rhs method a few lines above, and works with both matrix and ndarray.
Thanks
Francesco

Coverage increased (+2.4%) to 84.599% when pulling a995655ec55f940f1cd3687ad279067795db78f7 on francescoseccamonte:master into 66bee9d31c0e4913aa2bda614794845563a616d6 on python-control:master.

Coverage increased (+2.4%) to 84.599% when pulling a995655ec55f940f1cd3687ad279067795db78f7 on francescoseccamonte:master into 66bee9d31c0e4913aa2bda614794845563a616d6 on python-control:master.


[RFE] Add RISC-V support for Flatcar Container Linux

Current situation
Flatcar cannot be built for the RISC-V architecture (https://riscv.org).
Impact
Consumer boards are starting to become widely available, like the Vision 5, LicheePi 4A or Milk-V. Enterprise grade manufacturers like Ventana are also providing server grade RISC-V CPUs.
Also, cloud providers like Scaleway already offer RISC-V instances.
Ideal future situation
To be able to run Flatcar on RISC-V systems.
Implementation options
Upstream Gentoo already has support for most of the packages. The SDK needs to be worked on and maybe also streamline / organize the build code for ARM64 and RISC-V at the same time, so that ARM-on-ARM and RISC-on-RISC builds can be possible, without forcing cross-compilation.

I managed to get a Gentoo RISC-V built, here is the documentation step by step on how to build the image, maybe someone finds it useful.
Need to test it out on my RISC-V board and then see how it can be applied to Flatcar SDK workflow, work in progress.
Readme: https://github.com/ader1990/configs/blob/master/gentoo/Readme-RISCV.md
Initial document how-to, the starting point
https://wiki.gentoo.org/wiki/User:Dlan/RISC-V/TH1520#Host_Env_Setup
Install Gentoo upstream on an AMD64 box was done using the script from this folder
prepare the env - install the toolings
emerge dev-vcs/git
emerge app-misc/screen

prepare the crossdev repos (instructions from @chewie)
mkdir -p /var/db/repos/crossdev/{metadata,profiles}
echo crossdev > /var/db/repos/crossdev/profiles/repo_name
cat > /var/db/repos/crossdev/metadata/layout.conf <<EOF
masters = gentoo
thin-manifests = true
cache-formats = md5-dict
EOF
cat > /etc/portage/repos.conf/crossdev.conf <<EOF
[crossdev]
priority = 1001
location = /var/db/repos/crossdev
sync-type =
EOF

prepare the crossdev env
emerge --ask sys-devel/crossdev
crossdev --target riscv64-unknown-linux-gnu

build uboot
git clone --depth=1 -b th1520 https://github.com/revyos/thead-u-boot u-boot
pushd u-boot
alias rvmake='make ARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu- -j30 '
# use the 16g target for the 16GB RAM board
rvmake distclean && rvmake light_lpi4a_16g_defconfig && rvmake
ls -liath u-boot-with-spl.bin
popd

build kernel
git clone --depth=1 -b lpi4a https://github.com/revyos/thead-kernel kernel
pushd kernel
rvmake revyos_defconfig
# to fix the pahole issue
emerge -av dev-util/pahole
rvmake Image
ls -liath ./arch/riscv/boot/Image
rvmake modules
ls -liath modules
rvmake dtbs
ls -liath ./arch/riscv/boot/dts/thead/light-lpi4a-16gb.dtb

git clone https://github.com/revyos/opensbi -b th1520-v1.4
pushd opensbi
rvmake PLATFORM=generic FW_PIC=y
ls build/platform/generic/firmware/fw_dynamic.bin
popd

# get the two closed source light_aon_fpga and light_c906_audio from
# https://git.beagleboard.org/beaglev-ahead/xuantie-ubuntu/-/tree/master/bins
# https://lore.kernel.org/buildroot/20230821234359.06008b73@windsurf/T/
# light_aon_fpga.bin: "aon" is an `Always On` fpga binary used for power
# management... If you don't have this, the board will boot, but things
# like cpufreq don't work..
# light_c906_audio.bin: Probably Audio, never really tested it too much...

# this is how a bootfs should look like
# Image           light-lpi4a-ddr2G.dtb  light_aon_fpga.bin
# fw_dynamic.bin  light-lpi4a.dtb        light_c906_audio.bin
# kernel-release  light-lpi4a_2Ghz.dtb   lost+found
popd

get the stage 3 built image
https://mirror.bytemark.co.uk/gentoo/releases/riscv/autobuilds/current-stage3-rv64_lp64d-systemd/stage3-rv64_lp64d-systemd-20240621T170422Z.tar.xz

Got Gentoo latest version running on the LicheePi4A:
localhost ~ # cat /etc/os-release
NAME=Gentoo
ID=gentoo
PRETTY_NAME="Gentoo Linux"
ANSI_COLOR="1;32"
HOME_URL="https://www.gentoo.org/"
SUPPORT_URL="https://www.gentoo.org/support/"
BUG_REPORT_URL="https://bugs.gentoo.org/"
VERSION_ID="2.15"
localhost ~ # uname -a
Linux localhost 5.10.113-th1520 #2<IP_ADDRESS>.27+2dec14431 SMP PREEMPT Fri May 31 16:28:40 UTC  riscv64 GNU/Linux
localhost ~ # systemctl --version
systemd 255 (255)
+PAM -AUDIT -SELINUX -APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 +IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 -BZIP2 +LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP -SYSVINIT default-hierarchy=unified

Next step is to follow up on @chewi great work and how to's to add a new architecture for Flatcar and get a PoC:
https://github.com/flatcar/flatcar-website/blob/chewi/new-cpu-architecture/content/docs/latest/reference/developer-guides/new-cpu-architecture.md#porting-flatcar-itself

WOIP to get a working SDK for cross-building RISCV64 packages: https://github.com/ader1990/scripts/pull/1/files.
After the SDK has been created, there will be probably some upstream packages that need to be changed to have the ~riscv keyword.
@chewi created this bug report for the selinux* ones: https://bugs.gentoo.org/936297, more to come.
Gentoo sys-libs/libselinux-3.6-r1 needs also a fix to handle the .a removal, as it is not working on RISCV64 lp64d.  use static-libs || rm "${D}"/usr/lib*/*.a || die -> https://github.com/flatcar/scripts/blob/main/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.6-r1.ebuild#L144

Here's the libselinux fix upstream: gentoo/gentoo@7b643dfa2a2d94c26ce7791885ea9651ec95b6a6

Plan to add experimental support for RISC-V in Flatcar, in this chronological order to be done:

coreos-overlay - add ~riscv keyword and make sure the packages build on riscv
portage-stable - add ~riscv keyword upstream
move dev-lang/rust from coreos-overlay to portage-stable and fix rustc riscv64 target build
fix golang packages build on risc-v
add risc-v profile
create risc-v package.mask according to https://github.com/flatcar/scripts/blob/chewi/riscv/generate_unstable_mask
add risc-v glue for the SDK build
add risc-v glue for the packages build
add risc-v grub glue for the packages build
add risc-v glue for the image build
test risc-v image using qemu
test risc-v image using a physical board
enable risc-v default enabled: SDK bootstrap, SDK Docker image, CI and official image builds

Something to be aware of. Gentoo is planning to split the riscv keyword into riscv and riscv32. That shouldn't affect this, although there was also a suggestion to use riscv64, and the plan hasn't been finalised yet.

Something to be aware of. Gentoo is planning to split the riscv keyword into riscv and riscv32. That shouldn't affect this, although there was also a suggestion to use riscv64, and the plan hasn't been finalised yet.

All over the code bases, there are risc-v, riscv, riscv64, riscv64gc - so many different wordings for the same thing. I hope the industry comes together and decides on just one.

Linking https://github.com/flatcar/scripts/pull/2247, as mayday was not compiling on risc-v because of the old golang bindings.


Update to v5

Demo: https://onerous-pencil.surge.sh/flamegraph.html

Fixes zooming out to all stacks in Firefox
Performance improvements

only apply constant CSS values on .enter() (could move this to CSS classes possibly for more wins)
remove hidden elements from the selection to reduce the amount of DOM nodes that need to be animated

Fixed a fair few things so it renders now, remaining issues:

[x] when you toggle app/deps/core/etc visibility, some of the stacks change order
[x] 'zooming in' on a stack does not make it larger, it just hides the rest.
I think to fix it we have to find the lowest non-hidden frame and use its width in the frameWidth() calculation?
[x] zooming in on a stack makes it larger, but the frame you selected is not 100% wide, the frame right below is 100% wide.
[x] doesn't render the first time
[ ] https://github.com/davidmarkclements/d3-fg/pull/2/commits/aa4d70887fc6ee5f032b7fc28a70a40f86e53f63 may have to be reverted—it breaks animations in non-chrome

the latest:
update()
  filter: 7.238037109375ms
  sum/sort: 13.21875ms
  partition: 9.230224609375ms
  transition: 88.350830078125ms
  enter: 7.8330078125ms
  g:fade: 2.22802734375ms
  rect: 83.615966796875ms
  text: 23.52001953125ms

a lot of time is spent calculating transitions, even when they may not be necessary—not sure how to know if they're necessary :thinking: if it's possible to transition SVG attributes with CSS that would be an interesting route.
updates to the <rect> element sizes and colours and the <foreignObject><div/> element take a long time too. d3 is assigning every style property to every element … i expected it would only do so if something changed. need to read up on possible optimizations there.

Ok awesome let's keep it in
On Wed, 11 Jul 2018 at 15:10, Renée Kooi<EMAIL_ADDRESS>wrote:

@goto-bus-stop commented on this pull request.
In index.js
https://github.com/davidmarkclements/d3-fg/pull/2#discussion_r201703816:

var sort = true
var tiers = false
var filterNeeded = true
var filterTypes = []
var allSamples

var focused = null

function time (name, fn) {
if (timing) {

 console.time(name)

yeah all the time stuff was for debugging. it's behind the opts.timing
option, disabled by default. we can ditch it entirely too if you prefer
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/davidmarkclements/d3-fg/pull/2#discussion_r201703816,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABIrPDNGYXfTQklADz4ks9Ke2ocHOMbbks5uFgc6gaJpZM4VCudM
.

nits addressed :heavy_check_mark:
took out the CSS transition bit now because it didn't help as much as i initially thought and it doesn't work on FF


Initial documentation for python users

Adding python usage documentation for the book #1272
Goes over the first two examples in the python binding crate, linking to source code and necessary tools. I initially wanted to do a markdown parser example, but it's a little tricky with interface types removed. I'm making this PR just to get some basics covered.

Thanks!


AttributeError: 'NoneType' object has no attribute 'shape' when running simple_rl_train.py - Carla

Description:
When running simple_rl_train.py, I encounter an error where the environment (Carla) seems to attempt a reset multiple times, causing an AttributeError due to obs_space being None. This happens after the environment appears to initialize successfully.
Error Traceback:
python simple_rl_train.py
pygame 2.6.1 (SDL 2.28.4, Python 3.7.16)
Hello from the pygame community. https://www.pygame.org/contribute.html
[ENV] Register environments: ['SimpleCarla-v1', 'ScenarioCarla-v1'].
------ Run Carla on Port: 9000, GPU: 0 ------
[SIMULATOR] Not providing TM port, try finding free
[SIMULATOR] Using TM port: 55293
------ Run Carla on Port: 9004, GPU: 0 ------
[SIMULATOR] Not providing TM port, try finding free
[SIMULATOR] Using TM port: 37631
[11-14 09:23:12] INFO     [RANK0]: DI-engine DRL Policy                                                                                base_learner.py:338
                          DQNRLModel(
                            (_encoder): BEVSpeedConvEncoder(
                              (_relu): ReLU()
                              (_model): Sequential(
                                (0): Conv2d(5, 64, kernel_size=(3, 3), stride=(2, 2))
                                (1): ReLU()
                                (2): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2))
                                (3): ReLU()
                                (4): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2))
                                (5): ReLU()
                                (6): Flatten(start_dim=1, end_dim=-1)
                              )
                              (_mid): Linear(in_features=2304, out_features=256, bias=True)
                            )
                            (_head): DuelingHead(
                              (A): Sequential(
                                (0): Sequential(
                                  (0): Linear(in_features=512, out_features=512, bias=True)
                                  (1): ReLU()
                                )
                                (1): Sequential(
                                  (0): Linear(in_features=512, out_features=21, bias=True)
                                )
                              )
                              (V): Sequential(
                                (0): Sequential(
                                  (0): Linear(in_features=512, out_features=512, bias=True)
                                  (1): ReLU()
                                )
                                (1): Sequential(
                                  (0): Linear(in_features=512, out_features=1, bias=True)
                                )
                              )
                            )
                          )
pygame 2.6.1 (SDL 2.28.4, Python 3.7.16)
Traceback (most recent call last):
  File "simple_rl_train.py", line 143, in <module>
    main(args)
  File "simple_rl_train.py", line 104, in main
    cfg.policy.eval.evaluator, evaluate_env, policy.eval_mode, exp_name=cfg.exp_name
  File "/home/a_mohame/DI-drive/core/eval/serial_evaluator.py", line 59, in __init__
    super().__init__(cfg, env, policy, tb_logger=tb_logger, exp_name=exp_name, instance_name=instance_name)
  File "/home/a_mohame/DI-drive/core/eval/base_evaluator.py", line 49, in __init__
    self.env = env
  File "/home/a_mohame/DI-drive/core/eval/serial_evaluator.py", line 76, in env
    self._env_manager.launch()
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/site-packages/ding/envs/env_manager/subprocess_env_manager.py", line 350, in launch
    self._create_state()
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/site-packages/ding/envs/env_manager/subprocess_env_manager.py", line 251, in _create_state
    shape = obs_space.shape
AttributeError: 'NoneType' object has no attribute 'shape'

Setup Details:
DI-engine: 0.4
DI-drive: 0.3.4
Gym: 0.20.0
Carla: 0.9.10
Python: 3.7.16
Steps to Reproduce:
Run the command python simple_rl_train.py.
The environment initializes and registers, and the simulation begins is reset.
After resetting, the environment unexpectedly attempts another reset.
The program throws an AttributeError in subprocess_env_manager.py due to obs_space being None.

This was fixed by switching of shared_memory in subprocess_env_manager.py. However now I am getting this:
pygame 2.6.1 (SDL 2.28.4, Python 3.7.16)
Hello from the pygame community. https://www.pygame.org/contribute.html
[ENV] Register environments: ['SimpleCarla-v1', 'ScenarioCarla-v1'].
------ Run Carla on Port: 9000, GPU: 0 ------
[SIMULATOR] Not providing TM port, try finding free
[SIMULATOR] Using TM port: 56485
------ Run Carla on Port: 9004, GPU: 0 ------
[SIMULATOR] Not providing TM port, try finding free
[SIMULATOR] Using TM port: 42571
[11-14 11:13:40] INFO     [RANK0]: DI-engine DRL Policy                                                                                base_learner.py:338
                          DQNRLModel(
                            (_encoder): BEVSpeedConvEncoder(
                              (_relu): ReLU()
                              (_model): Sequential(
                                (0): Conv2d(5, 64, kernel_size=(3, 3), stride=(2, 2))
                                (1): ReLU()
                                (2): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2))
                                (3): ReLU()
                                (4): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2))
                                (5): ReLU()
                                (6): Flatten(start_dim=1, end_dim=-1)
                              )
                              (_mid): Linear(in_features=2304, out_features=256, bias=True)
                            )
                            (_head): DuelingHead(
                              (A): Sequential(
                                (0): Sequential(
                                  (0): Linear(in_features=512, out_features=512, bias=True)
                                  (1): ReLU()
                                )
                                (1): Sequential(
                                  (0): Linear(in_features=512, out_features=21, bias=True)
                                )
                              )
                              (V): Sequential(
                                (0): Sequential(
                                  (0): Linear(in_features=512, out_features=512, bias=True)
                                  (1): ReLU()
                                )
                                (1): Sequential(
                                  (0): Linear(in_features=512, out_features=1, bias=True)
                                )
                              )
                            )
                          )
pygame 2.6.1 (SDL 2.28.4, Python 3.7.16)
Hello from the pygame community. https://www.pygame.org/contribute.html
[ENV] Register environments: ['SimpleCarla-v1', 'ScenarioCarla-v1'].
------ Run Carla on Port: 9000, GPU: 0 ------
[SIMULATOR] Not providing TM port, try finding free
[SIMULATOR] Using TM port: 40265
------ Run Carla on Port: 9004, GPU: 0 ------
[SIMULATOR] Not providing TM port, try finding free
[SIMULATOR] Using TM port: 35481
**[11-14 11:13:59] ERROR    Env 0 reset has exceeded max retries(5)**                                                                                func.py:62
Traceback (most recent call last):
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/site-packages/ding/utils/system_helper.py", line 57, in run
    self.ret = self._target(*self._args, **self._kwargs)
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/site-packages/ding/envs/env_manager/subprocess_env_manager.py", line 459, in _reset
    self.close()
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/site-packages/ding/envs/env_manager/subprocess_env_manager.py", line 764, in close
    p.send(['close', None, None])
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/multiprocessing/connection.py", line 404, in _send_bytes
    self._send(header + buf)
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "simple_rl_train_My.py", line 143, in <module>
    main(args)
  File "simple_rl_train_My.py", line 104, in main
    cfg.policy.eval.evaluator, evaluate_env, policy.eval_mode, exp_name=cfg.exp_name
  File "/home/a_mohame/DI-drive/core/eval/serial_evaluator.py", line 59, in __init__
    super().__init__(cfg, env, policy, tb_logger=tb_logger, exp_name=exp_name, instance_name=instance_name)
  File "/home/a_mohame/DI-drive/core/eval/base_evaluator.py", line 49, in __init__
    self.env = env
  File "/home/a_mohame/DI-drive/core/eval/serial_evaluator.py", line 76, in env
    self._env_manager.launch()
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/site-packages/ding/envs/env_manager/subprocess_env_manager.py", line 351, in launch
    self.reset(reset_param)
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/site-packages/ding/envs/env_manager/subprocess_env_manager.py", line 408, in reset
    t.join()
  File "/home/a_mohame/anaconda3/envs/my_env/lib/python3.7/site-packages/ding/utils/system_helper.py", line 64, in join
    raise RuntimeError('Exception in thread({})'.format(id(self))) from self.exc
RuntimeError: Exception in thread(140351789910736)

There are 2 possible methods to figure out this problem:

You should add the definition of obs_space in the environment class you used in DI-drive
add shared_memory=False in the config field of env, since the subprocess_env_manager uses the obs_space to create shared memory buffer before running, set it to False can skip this process.

For method 2, I already tried making shared_memory=False in the subprocess_env_manager and the error I am sharing is after doing that.
For method 1, I see its already defined in the 'simple_carla_env.py' file:
`
def get_observations(self) -> Dict:
"""
Get observations from simulator. The sensor data, navigation, state and information in simulator
are used, while not all these are added into observation dict.
    :Returns:
        Dict: Observation dict.
    """
    obs = dict()
    state = self._simulator.get_state()
    navigation = self._simulator.get_navigation()
    sensor_data = self._simulator.get_sensor_data()
    information = self._simulator.get_information()

    self._simulator_databuffer['state'] = state
    self._simulator_databuffer['navigation'] = navigation
    self._simulator_databuffer['information'] = information
    if 'action' not in self._simulator_databuffer:
        self._simulator_databuffer['action'] = dict()
    if not navigation['agent_state'] == 4 or self._ignore_light:
        self._stuck_detector.tick(state['speed'])

    obs.update(sensor_data)
    obs.update(
        {
            'tick': information['tick'],
            'timestamp': np.float32(information['timestamp']),
            'agent_state': navigation['agent_state'],
            'node': navigation['node'],
            'node_forward': navigation['node_forward'],
            'target': np.float32(navigation['target']),
            'target_forward': np.float32(navigation['target_forward']),
            'command': navigation['command'],
            'speed': np.float32(state['speed']),
            'speed_limit': np.float32(navigation['speed_limit']),
            'location': np.float32(state['location']),
            'forward_vector': np.float32(state['forward_vector']),
            'acceleration': np.float32(state['acceleration']),
            'velocity': np.float32(state['velocity']),
            'angular_velocity': np.float32(state['angular_velocity']),
            'rotation': np.float32(state['rotation']),
            'is_junction': np.float32(state['is_junction']),
            'tl_state': state['tl_state'],
            'tl_dis': np.float32(state['tl_dis']),
            'waypoint_list': navigation['waypoint_list'],
            'direction_list': navigation['direction_list'],
        }
    )

    if self._visualizer is not None:
        if self._visualize_cfg.type not in sensor_data:
            raise ValueError("visualize type {} not in sensor data!".format(self._visualize_cfg.type))
        self._render_buffer = sensor_data[self._visualize_cfg.type].copy()
        if self._visualize_cfg.type == 'birdview':
            self._render_buffer = visualize_birdview(self._render_buffer)
    return obs

`

for method 1, maybe you should check why obs_space is NoneType in the error message, maybe you can initialize the obs_space variable as early as possible.


Fixed merging of integer keyed arrays with same value.

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Tests pass?
✔

Fixed issues
#13

Thanks!


Is the 3D demo publicly available?

I am curious. Is the source code for this demo publicly available?
https://www.youtube.com/watch?v=p1xlcNiER0o&ab_channel=RobotLocomotionGroup
The link to the video is provided here:
https://stanford.edu/~boyd/papers/fpp.html

I've just added the UAV demo to the examples folder. Note that the 3D visualization of the UAV requires meshcat. Note also that I've reduced the size of the environment with respect to the example in the paper so that the preprocessing works fine also with Clarabel. If you'd like to try larger environments, I suggest you use Mosek as a solver for the optimization of the representative points during the offline preprocessing.


fixed a number typo

a 0 was missing. It must be eight bits.
Please merge this PR if possible.
Thank you.

@Mehedi61 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Add -a arg to the grep invocation to properly process non-ASCII filenames

Trying to invoke splits on a repo which has non-ASCII filenames yields
"Binary file (standard input) matches"
, and a fatal git crash.
The -a argument makes things work.

added a -t option to git splits to process as text, which results in grep -a. see fix for PR #3


Update to Circle CI's next gen Docker images

The Circle CI job currently warns:

You’re using a deprecated Docker convenience image. Upgrade to a next-gen Docker convenience image.

eg see banner on:
https://app.circleci.com/pipelines/github/forcedotcom/sf-fx-sdk-java/172/workflows/31631d89-2732-4edc-9a8f-ac156e04d180/jobs/344

Made redundant with the migration from Circle CI to GitHub Actions in #102.


After a nix-instantiate fails, further pings on that project are ignored

Describe the bug
When your nix file contains an error (syntax or evaluation error), the project goes in a zombie state where later pings are not picked up anymore
To Reproduce
Steps to reproduce the behavior:

start the daemon
add an error to your shell.nix
try to run lorri internal ping shell.nix after and notice that no event is printed and nothing happens

alternatively start the daemon with an already broken nix file, the same thing happens.
Lorri does not crash as far as I can see.
Expected behavior

The event loop should clearly respond to further requests, because after changing the file again it might be unbroken.
Additional context

release 1.2.0, master, NixOS 20.03

This might be what led to me having to stop lorri, go back into projects, and then finally just call lorri watch.
Having to do that makes everything feel broken even though it's not.

I want to confirm that this issue is the root cause for something I discussed @Profpatsch on IRC:
08:42 < kandinski> how can I force evaluation in a lorri project? I have an "INFO lorri has not completed an evaluation for this project yet" I can't get rid of even if
                   I rename the .envrc file, launch the nix-shell by hand, and then re-enable the .envrc file
09:59 < Profpatsch> kandinski: usually just running `direnv allow` in the same project starts a lorri eval
09:59 < Profpatsch> Or exit the directory and enter it again
09:59 < Profpatsch> something which triggers direnv
09:59 < Profpatsch> there’s also `lorri internal ping`, but that’s more for debugging

My original hypothesis is that this was due to symlink resolution not working (this is in fact an issue with direnv and python/pipenv virtualenvs), but nope; this here known issue.
some_python_project $ journalctl --user --follow -u lorri

Sep 20 12:05:20 desire systemd[2061]: Stopping Lorri Daemon...
Sep 20 12:05:20 desire systemd[2061]: lorri.service: Succeeded.
Sep 20 12:05:20 desire systemd[2061]: Stopped Lorri Daemon.
Sep 20 12:05:20 desire systemd[2061]: Started Lorri Daemon.
Sep 20 12:05:20 desire lorri[3314]: Sep 20 12:05:20.799 INFO ready
Sep 20 12:05:20 desire lorri[3314]: Sep 20 12:05:20.837 INFO build status, message: BuildEvent(Started { nix_file: NixFile("/home/kandinski/data/work/hack/dmoisset_pyweek28/shell.nix"), reason: ProjectAdded(NixFile("/home/kandinski/data/work/hack/dmoisset_pyweek28/shell.nix")) })
Sep 20 12:05:21 desire lorri[3314]: Sep 20 12:05:21.076 INFO build status, message: BuildEvent(Failure { nix_file: NixFile("/home/kandinski/data/work/hack/dmoisset_pyweek28/shell.nix"), failure: Exit { cmd: "\"nix-instantiate\" \"-vv\" \"--add-root\" \"/tmp/.tmps4jKnr/result\" \"--indirect\" \"--argstr\" \"runTimeClosure\" \"/nix/store/am11q6h6czzvw54d8nvy8l6s6il46di6-runtime-closure.nix\" \"--argstr\" \"src\" \"/home/kandinski/data/work/hack/dmoisset_pyweek28/shell.nix\" \"--\" \"/home/kandinski/.cache/lorri/cas/3a83fbad2f114b4f4f431db2014c985c\"", status: Some(1), logs: [LogLine("trace: using storePath"), LogLine("error: cannot coerce a function to a string, at /home/kandinski/.cache/lorri/cas/3a83fbad2f114b4f4f431db2014c985c:40:7"), LogLine("(use \'--show-trace\' to show detailed location information)")] } })

## here I fix the shell.nix but nothing happens until I issue a
## $ systemctl --user restart lorri

Sep 20 12:06:34 desire systemd[2061]: Stopping Lorri Daemon...
Sep 20 12:06:34 desire systemd[2061]: lorri.service: Succeeded.
Sep 20 12:06:34 desire systemd[2061]: Stopped Lorri Daemon.
Sep 20 12:06:34 desire systemd[2061]: Started Lorri Daemon.
Sep 20 12:06:34 desire lorri[3509]: Sep 20 12:06:34.642 INFO ready
Sep 20 12:06:34 desire lorri[3509]: Sep 20 12:06:34.680 INFO build status, message: BuildEvent(Started { nix_file: NixFile("/home/kandinski/data/work/hack/dmoisset_pyweek28/shell.nix"), reason: ProjectAdded(NixFile("/home/kandinski/data/work/hack/dmoisset_pyweek28/shell.nix")) })
Sep 20 12:06:36 desire lorri[3509]: Sep 20 12:06:36.080 INFO build status, message: BuildEvent(Completed { nix_file: NixFile("/home/kandinski/data/work/hack/dmoisset_pyweek28/shell.nix"), result: BuildResults { output_paths: OutputPaths { shell_gc_root: RootPath("/home/kandinski/.cache/lorri/gc_roots/842be5c23ba1af49a7cb7fe16494a45e/gc_root/shell_gc_root") } } })

Once lorri picks up changes, it keeps working as long as I don't make breaking changes to shell.nix, so for me restarting the user-level systemd unit works.

yes, it should have been fixed by https://github.com/nix-community/lorri/pull/7 in the fork.


npm typings support

Changes

Update the project to include a package.json

Testing

Verified in the XD-Template-Project

Additional Notes
In order for individuals to pull this down outside of the definitelytyped project a contributor or owner will need to publish this project to NPM

Thanks, I wasn't sure how to go about getting that information, so that's a really great callout 👍

fixes #28

A side-note:
Another thing that might be useful is if someone (whoever that may be, I – unfortunately – would only get to do so in about two weeks) could update the Wiki to include instructions on how to use it for developing with Typescript once it is pushed.

@kerrishotts Do you have any thoughts on how we could efficiently publish this to npm (may I ask how the workflow works with xdpm?)? Thank you very much in advance...

Alright – I'll just go ahead and merge this now, and we'll worry about how to get this onto npm after that 😉

@tato123 Congratulations to your first contribution to the typings repo 🎉 😉

@tato123 sorry to bug you with a simple request - I am a swift developer having trouble getting up and running in Typescript land. Any chance you could add "getting started" instructions to the wiki?

@tato123 @pklaschka which Typescript version are you using? I think this may be the reason I'm not able to compile on my end... I am using 3.2.1 🤔

@mattThousand I'm using the same version however I was not using tsc, I was using babel-7 typescript preset and a tsconfig to mainly typecheck my files in vscode.
@mattThousand are you compiling with tsc?
Since I don't compile with tsc it doesn't care about the typings however I want to make sure this works for you, do you have sample code youd mind sharing?

thanks for getting back to me @tato123 - yes, I am trying to compile using tsc but getting a whole heap of compilation errors... here is the bare-bones project I am using: https://github.com/mattThousand/typings

let me know if I'm missing something obvious 😄 . Would not be surprised if I am going about things entirely incorrectly (I am new to this stack)

@mattThousand Since I'm not an expert in getting tsc to work with it either, this is just an attempt: Could you maybe try if it works when you use this tsconfig.json file:
{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "baseUrl": ".",
    "paths": {
      "scenegraph": ["./node_modules/@adobexd/typings/types/scenegraph"],
      "application": ["./node_modules/@adobexd/typings/types/application"],
      "commands": ["./node_modules/@adobexd/typings/types/commands"],
      "uxp": ["./node_modules/@adobexd/typings/types/uxp"],
      "os": ["./node_modules/@adobexd/typings/types/os"]
    },

    "typeRoots": ["@types","./node_modules/@adobexd/"],
    "outDir": "./built"
  },
  "include": [
      "./src/**/*"
  ]
}

It at least works for me – let me know if it does for you as well.

@pklaschka @tato123 not explicitly including the node_modules directory did the trick for me. I am baffled, but thankfully in a place where I can start being productive with your marvelous types 😄
Sorry to bug you!

@mattThousand Whatever works 😉
No need to say sorry – all such things help to create better docs for this (learning what are challenges and how they can get resolved in individual cases), so it's really something good for both sides.
I'm happy you've found a solution and if you have any further issues or find any other (unexpected) solutions, feel free to open an issue.


Reason for “no such container” messages in Docker daemon log

Description
While looking at the Docker daemon logs for space issues (#31628), I realized that my daemon logs are mostly filled with error messages about “no such container”. For example, in the current logs from one of my swarm nodes, 47774/48309 lines (98.9%) are about “no such container”. Here's an excerpt.
Mar 08 09:23:41 itpocnode01.ucalgary.ca dockerd[1242]: time="2017-03-08T09:23:41.865075686-07:00" level=error msg="Handler for GET /containers/caf715b6168ffbe0bfa6273b6c3da88424a0902d653edda385fd29209793022f/json returned error: No such container: caf715b6168ffbe0bfa6273b6c3da88424a0902d653edda385fd29209793022f"
Mar 08 09:23:41 itpocnode01.ucalgary.ca dockerd[1242]: time="2017-03-08T09:23:41.865953477-07:00" level=error msg="Handler for GET /containers/a787c1e51e5ef67b60e6f52bcf2625d7b554a6ff40751978c837fc5ab3fb0d66/json returned error: No such container: a787c1e51e5ef67b60e6f52bcf2625d7b554a6ff40751978c837fc5ab3fb0d66"
Mar 08 09:23:41 itpocnode01.ucalgary.ca dockerd[1242]: time="2017-03-08T09:23:41.866665518-07:00" level=error msg="Handler for GET /containers/20588589287c176b5497deea67a9d1188fd5735e36e63d914c4866fb1cf2b8b9/json returned error: No such container:<PHONE_NUMBER>7c176b5497deea67a9d1188fd5735e36e63d914c4866fb1cf2b8b9"
Mar 08 09:23:41 itpocnode01.ucalgary.ca dockerd[1242]: time="2017-03-08T09:23:41.867397933-07:00" level=error msg="Handler for GET /containers/5dac55ccbf84d1707295b7124a8cb02f077607856761a3c03cb64a8bb5474084/json returned error: No such container: 5dac55ccbf84d1707295b7124a8cb02f077607856761a3c03cb64a8bb5474084"
Mar 08 09:23:41 itpocnode01.ucalgary.ca dockerd[1242]: time="2017-03-08T09:23:41.868129294-07:00" level=error msg="Handler for GET /containers/6afa66a774f3fdf996fdb8cd2b7c814e86f1089feba3c9924074b4ad7db885fa/json returned error: No such container: 6afa66a774f3fdf996fdb8cd2b7c814e86f1089feba3c9924074b4ad7db885fa"

How do I debug the reason for this? Docker daemon logs attached below.
docker.txt
Steps to reproduce the issue:
Not sure how to reproduce this.

Run a 4 node swarm.
Observe Docker daemon logs.

Describe the results you received:
My daemon logs are mostly filled (over 98%) with "no such container" error messages.
Describe the results you expected:
I don't expect my logs to be filled with "no such container" error messages continuously.
Additional information you deem important (e.g. issue happens only occasionally):
This is on a 4 node swarm. All four are exhibiting similar output in their Docker daemon logs.
Output of docker version:
-bash-4.2$ docker version
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   60ccb22
 Built:        Thu Feb 23 10:54:03 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   60ccb22
 Built:        Thu Feb 23 10:54:03 2017
 OS/Arch:      linux/amd64
 Experimental: true

Output of docker info:
-bash-4.2$ docker info
Containers: 11
 Running: 11
 Paused: 0
 Stopped: 0
Images: 25
Server Version: 17.03.0-ce
Storage Driver: devicemapper
 Pool Name: docker-thinpool
 Pool Blocksize: 524.3 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file:
 Metadata file:
 Data Space Used: 19.49 GB
 Data Space Total: 65.28 GB
 Data Space Available: 45.79 GB
 Metadata Space Used: 5.898 MB
 Metadata Space Total: 683.7 MB
 Metadata Space Available: 677.8 MB
 Thin Pool Minimum Free Space: 6.527 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: true
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Library Version: 1.02.135-RHEL7 (2016-11-16)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
Swarm: active
 NodeID: 3vz5vqb96ab3yh6mrhhbnf5ki
 Is Manager: true
 ClusterID: 9p9qjvvrp991zitpixlm8dpm5
 Managers: 4
 Nodes: 4
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
  <IP_ADDRESS>:2377
  <IP_ADDRESS>:2377
  <IP_ADDRESS>:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 977c511eda0925a723debdc94d09459af49d082a
runc version: a01dafd48bc1c7cc12bdb01206f9fea7dd6feb70
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-514.6.1.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.51 GiB
Name: itpocnode01.ucalgary.ca
ID: OM7K:NNN7:75VJ:I34C:W5ZS:TCYH:ZGPH:SRXP:HINS:7O2W:IZQ4:QIGD
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):
All four 4 nodes are on RHEL 7.3.

You probably have a container, or service running that's monitoring docker, for example, a cAdvisor container, or kubernetes. Such a service may be periodically accessing the docker API to inspect container status, but (for some reason) is using outdated information, so tries to inspect containers that no longer exist.
This is not a bug in docker, because docker itself does not automatically make those API calls

I'll go ahead and close, because this is not a bug, but feel free to continue the conversation.

Thanks, @thaJeztah! I've got cAdvisor running. I'll try stopping it on all the nodes.

I've seen other reports, so perhaps there's an issue with cAdvisor, causing it to either cache container ID's, or a bug that makes it determine the container ID's the wrong way

I am getting same issue at the time of docker inspect call through API. Using docker 1.12.3
@thaJeztah Yes, I am doing the docker inspect call frequently (4 times in every 3 minutes). Is that overload to docker daemon? What is the benchmark?
Info: I am using volume driver also. Could you please put some light on this?

@sauravmndl if you see this message, it's because something that calls the API tries to call inspect for a container that doesn't (or no longer) exists; it's not about "speed" / "overload" in this case, just an API call using a container-id that's incorrect

@thaJeztah The operation I do:  first create the container and then start, all using swarm API.  In two scenarios I get the error:

The create and start becomes successful but after that when I inspect using swarm API I get following error in swarm log
time="xxxx" level=error msg="HTTP error: No such container d3ee1a5ba94d6649653dc4e65697721aef58665100761678fa7908bfbf9ffb6e" status=404
AND following error in docker log
time="xxxx" level=error msg="Handler for GET /v1.24/containers/d3ee1a5ba94d6649653dc4e65697721aef58665100761678fa7908bfbf9ffb6e/json returned error: No such container: d3ee1a5ba94d6649653dc4e65697721aef58665100761678fa7908bfbf9ffb6e"

Create is not successful, but actually in docker node I can see the corresponding container. This API call return "Container created but refresh didn't report it back" Following are some code snippet from swarm which also does a container check after create.

https://github.com/docker/swarm/blob/c684b4b5a17d3269839d9d6029511634dd1da052/cluster/engine.go#L1034
https://github.com/docker/swarm/blob/c684b4b5a17d3269839d9d6029511634dd1da052/cluster/engine.go#L793
https://github.com/docker/swarm/blob/c684b4b5a17d3269839d9d6029511634dd1da052/cluster/engine.go#L850

Ok, so this looks more like an issue in swarm, not docker; what do you mean with;

Create is not successful, but actually in docker node I can see the corresponding container.

what was the reason the container failed to be created?
If you are on that node, and docker ps -a, you see the container?
Can you docker inspect the container on that node directly (through the docker cli, and not using the swarm api?)

Dear Friends,
I am trying to setup devstack multi node deployment. When i try to pull docker images using kolla-ansible pull, i am getting the below error. I am stuck please help me to resolve the issue.
failed: [localhost] (item={'value': {u'haproxy': {u'placement_api_external': {u'mode': u'http', u'enabled': True, u'external': True, u'listen_port': u'8780', u'port': u'8780'}, u'placement_api': {u'mode': u'http', u'enabled': True, u'external': False, u'listen_port': u'8780', u'port': u'8780'}}, u'group': u'placement-api', u'dimensions': {}, u'volumes': [u'/etc/kolla//placement-api/:/var/lib/kolla/config_files/:ro', u'/etc/localtime:/etc/localtime:ro', u'kolla_logs:/var/log/kolla/', u''], u'container_name': u'placement_api', u'image': u'kolla/centos-source-placement-api:rocky', u'enabled': True}, 'key': u'placement-api'}) => {
"changed": false,
"invocation": {
"module_args": {
"action": "pull_image",
"api_version": "auto",
"auth_email": null,
"auth_password": null,
"auth_registry": null,
"auth_username": null,
"cap_add": [],
"command": null,
"detach": true,
"dimensions": {},
"environment": {
"KOLLA_CONFIG_STRATEGY": "COPY_ALWAYS"
},
"graceful_timeout": 10,
"image": "kolla/centos-source-placement-api:rocky",
"labels": {},
"name": null,
"privileged": false,
"remove_on_exit": true,
"restart_policy": "unless-stopped",
"restart_retries": 10,
"security_opt": [],
"state": "running",
"tls_cacert": null,
"tls_cert": null,
"tls_key": null,
"tls_verify": false,
"tty": false,
"volumes": null,
"volumes_from": null
}
},
"item": {
"key": "placement-api",
"value": {
"container_name": "placement_api",
"dimensions": {},
"enabled": true,
"group": "placement-api",
"haproxy": {
"placement_api": {
"enabled": true,
"external": false,
"listen_port": "8780",
"mode": "http",
"port": "8780"
},
"placement_api_external": {
"enabled": true,
"external": true,
"listen_port": "8780",
"mode": "http",
"port": "8780"
}
},
"image": "kolla/centos-source-placement-api:rocky",
"volumes": [
"/etc/kolla//placement-api/:/var/lib/kolla/config_files/:ro",
"/etc/localtime:/etc/localtime:ro",
"kolla_logs:/var/log/kolla/",
""
]
}
},
"msg": "Unknown error message: Tag rocky not found in repository docker.io/kolla/centos-source-placement-api"
}

@sibasankarp please don't hijack closed issues with a completely unrelated question. (looking at your issue, looks like you're attempting to pull a :rocky tag from Docker Hub, but the image does not have such a tag; https://hub.docker.com/r/kolla/centos-source-placement-api/tags


.env parameters

PORT=17422
DOMAIN=bitmia.com
SECRET=askdbasjdhvakjvsdjasd
SITE_OWNER_URL=https://t.me/qecez
SITE_OWNER_NAME=@qecez
SITE_NAME=Bitmia
What does SECRET means here? How do I find this secret?

Sorry, the secret is just any random string you type. Do not worry very much about it. It is only used for generating the pins that people can use to configure their names later on.


pandas build issue

one of the requirements is causing the pandas wheels to be built. e.g., when tests run:
Building wheels for collected packages: yt, numpy, pandas
  Building wheel for yt (PEP 517): started
  Building wheel for yt (PEP 517): still running...
  Building wheel for yt (PEP 517): still running...
  Building wheel for yt (PEP 517): still running...
  Building wheel for yt (PEP 517): finished with status 'done'
  Created wheel for yt: filename=yt-4.0.2-cp38-cp38-linux_x86_64.whl size=37399169 sha256=3327925d598ddf1b5f255ddf2cebbb335bd5c68196588c50f747f82ff2fc8f90
  Stored in directory: /home/runner/.cache/pip/wheels/7c/00/e4/fb07eed0ece1c145f665d3e92e7f7cab6c3f5a3c1c6c123e47
  Building wheel for numpy (PEP 517): started
  Building wheel for numpy (PEP 517): still running...
  Building wheel for numpy (PEP 517): still running...
  Building wheel for numpy (PEP 517): still running...
  Building wheel for numpy (PEP 517): finished with status 'done'
  Created wheel for numpy: filename=numpy-1.22.3-cp38-cp38-linux_x86_64.whl size=20044014 sha256=1aa64052f2e3500494de1a20521d8ac65bfe689c6c2cd4b527f2db89d2bb0d8f
  Stored in directory: /home/runner/.cache/pip/wheels/21/37/10/81a13af5964837a3627457192fbc14d926b1a2dcd810f70fbf
  Building wheel for pandas (PEP 517): started
  Building wheel for pandas (PEP 517): still running...

This is bad as this can be very slow. Need to figure out why that's happening... might be a dependency that's not actually needed leftover from when I split this off from some seismic + yt + xarray work.

fixed with latest pushes


[Tests-Only] Implement expected failures file

Implements EXPECTED_FAILURES_FILE the same as https://github.com/owncloud/ocis-reva/pull/402

Adjust .drone.star so that it runs all the core API acceptance tests except ~@notToImplementOnOCIS&&~@toImplementOnOCIS - i.e. except the tests specifically tagged in core PR https://github.com/owncloud/core/pull/37736

Specify an EXPECTED_FAILURES_FILE and put it in a list of all the acceptance test scenarios that are expected to fail. These are things that pass on oC10 but currently have a problem on cs3org/reva

Add the infrastructure to be able to run local API acceptance test scenarios (Makefile test-acceptance-api target, composer.json, behat.yml,...)

Add local scenarios that demonstrate existing bad behavior in OCIS/reva. These are copied from the scenarios that are currently in core and tagged skipOnOcV10. I have moved just a few of them to demonstrate this. I will move the rest of them in a later PR.

This PR helps with issue https://github.com/owncloud/ocis-reva/issues/282 - when some examples in the Example Table of a Scenario Outline pass and some fail, we will run all of them and the ones that fail can be listed in EXPECTED_FAILURES_FILE
It also removes the need to change core API acceptance test code or feature files as we fix OCIS/reva issues. We can manage the local acceptance tests here in the local repo, and also can manage the list of expected failures here in the local repo (hopefully the list gets shorter as we implement and fix things!)

local API  acceptance tests: https://cloud.drone.io/cs3org/reva/2063/4/7
6 scenarios (6 passed)
37 steps (37 passed)
0m2.48s (18.50Mb)

oC10 API acceptance tests: https://cloud.drone.io/cs3org/reva/2063/4/8
1197 scenarios (534 passed, 663 failed)
10546 steps (8085 passed, 663 failed, 1798 skipped)
16m11.49s (21.43Mb)
Checking expected failures
Success - all failures were expected

Looks good. I will squash the commits.

PR #1041 could happen first, to get the core commit id really current. Then I can rebase this PR.

@phil-davis I've merged #1041

Rebased and passed:
https://cloud.drone.io/cs3org/reva/2115/4/8
1197 scenarios (534 passed, 663 failed)
10546 steps (8085 passed, 663 failed, 1798 skipped)
17m15.98s (21.46Mb)
Checking expected failures
Success - all failures were expected

@labkode ready for review

I rebased and force-pushed just now, to check that CI is still all good.

@phil-davis I am having a hard time to understand this PR as I don't have enough knowledge of the previous ownCloud PHP stack. Perhaps we can have a quick call and you guide me through?

10pm here and I was about to head for bed. I rebased to clean out some commits for the core commit bumps that are now already merged in master.
Last week we implemented a feature in the API test runner code that allows EXPECTED_FAILURES_FILE to be defined. When that is defined, and some test scenarios fail, the fails are checked against the list in that file. This allows us to run a large number of test scenarios from the upstream test suite, and to locally control the list of scenarios that are expected to fail. It is being used in owncloud/ocis-reva now, and a PR is waiting to be merged in owncloud/ocis. The benefit is that we do not need to coordinate tagging in the upstream test suite owncloud/core as fixes are made in cs3org/reva. We can simply reduce the local list of expected failures as we make more test scenarios pass.
A lot of the code here is infrastructure to support the test code. The upstream test code in owncloud/core is written in PHP using Behat+Gherkin as the test runner. So that means having composer.json etc to get the needed test dependencies. These things only get used by the API acceptance tests. Unfortunately I guess they "pollute" this golang repo  with some PHP! But it does not find its way into any of the reva build artifacts.
Anyway, llet me know when would be a good time to chat tomorrow or...

@phil-davis your comment helped understand. Rebase and I'll merge it. Also, there should be a better way to avoid bumping core commit id for the testing suite.

That might be OK to do now. Previously we relied on the skipOnOcis etc tags in the core API test suite. Some change would be done to those to unskip some test scenarios that now pass and to delete bug-demonstration scenarios that are no longer relevant. But the change/fix happened in cs3org/reva, owncloud/ocis-reva and owncloud/ocis at different times as the fix was merged, a release made, and that release applied to to next upstream repo. So that could be manged by adjusting the core commit id in each repo...
Now that we can control the expected failures locally in each reva repo there should be much less change to the core API test suite, and we can locally adjust to what test scenarios should pass/fail.
After this PR, I can make a PR to remove the core commit id. And we can see how often we get CI broken because of some change in owncloud/core

Note: I also have #1057 to come after this. It adds more bug-demo scenarios to the local tests, and can split the test pipelines (because the full set of API acceptance tests is getting a bit long!) But I will sort that out after getting this first infrastructure merged.

@labkode ready for review