Carla 0.9.9 make PythonAPI failed: recipe for target 'osm2odr' failed

When I run "make PythonAPI", I failed and got the following error message:
Setup.sh: llvm-8.0 already installed.
Setup.sh: boost-1.72.0-c8 already installed.
Setup.sh: rpclib-v2.2.1_c3-c8 already installed.
Setup.sh: gtest-1.8.1-c8 already installed.
Setup.sh: recast-cdce4e-c8 already installed.
Setup.sh: CARLA version <IP_ADDRESS>-255-gc56a7738.
Version.h
Setup.sh: Generating CMake configuration files.
Setup.sh: Success!
BuildLibCarla.sh: Building LibCarla "Client.Release" configuration.
[5/5] Linking CXX executable LibCarla/cmake/test/libcarla_test_client_release
[0/1] Install the project...
-- Install configuration: "Client"
-- Installing: /home/xiruo/carla/PythonAPI/carla/dependencies/include/carla/Version.h
-- Installing: /home/xiruo/carla/PythonAPI/carla/dependencies/lib/libcarla_client.a
-- Installing: /home/xiruo/carla/PythonAPI/carla/dependencies/test/libcarla_test_client_release
-- Set runtime path of "/home/xiruo/carla/PythonAPI/carla/dependencies/test/libcarla_test_client_release" to ""
BuildLibCarla.sh: Success!
-- Eclipse version is set to 3.6 (Helios). Adjust CMAKE_ECLIPSE_VERSION if this is wrong.
-- CMAKE_BINARY_DIR: /home/xiruo/carla/Build/libosm2dr-build
-- CMAKE_SOURCE_DIR: /home/xiruo/carla/Util/OSM2ODR
--
-- Platform:
--     Host: Linux-5.4.0-42-generic x86_64
--     Target: Linux-5.4.0-42-generic x86_64
--     CMake: 3.10.2
--     CMake generator: Ninja
--     CMake build tool: /usr/bin/ninja
--     Compiler: Clang 8.0.1
--
-- Found Python: /usr/bin/python
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Failed to find XercesC (missing: XercesC_LIBRARY XercesC_INCLUDE_DIR
  XercesC_VERSION)
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.10/Modules/FindXercesC.cmake:91 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:88 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/xiruo/carla/Build/libosm2dr-build/CMakeFiles/CMakeOutput.log".
Util/BuildTools/Linux.mk:158: recipe for target 'osm2odr' failed
make: *** [osm2odr] Error 1

What is going on here? My system is as below
Carla version: 0.9.9
OS: Ubuntu 18.04
Python on the machine: 2.7 & 3.6

apt install libxerces-c-dev could be a work-around.

I have hit the same problem attempting to build the docker image (using Ubuntu 18.04 as my 'host' OS) using the instructions at https://github.com/carla-simulator/carla/tree/master/Util/Docker . I'm building from recent (0.9.9) source, commit 8557c0b4.
I'm trying your tip of adding libxerces-c-dev to the list of installs in Prerequisites.Dockerfile. I'll report back when it's done (takes a while!).

OK I added  libxerces-c-dev to the list of apt-install packages in Prerequisites.Dockerfile which did indeed get me past the Xerces problem, thanks.
Next my docker build failed because the Python module distro was not found. I added pip and pip3 install distro to the Carla.Dockerfile command to get past that. (Would have been more elegant to add it to Prerequisites, but I didn't want to have to run all of that again.)
I don't understand why anyone else should have been able to build the Docker image without those changes -- I thought the whole point was that it gave a uniform environment for everyone? But it's my first experience with Docker.
I have not succeeded yet though. My Carla.Dockerfile build still failed with this:
  LogTexture: Display: Building textures: T_Jacket_n (BC5, 2048X2048)
  LogTexture: Display: Building textures: T_Jacket_orm (AutoDXT, 2048X2048)
Took 795.927096s to run UE4Editor, ExitCode=137
ERROR: Cook failed.
       (see /home/ue4/Library/Logs/Unreal Engine/LocalBuildLogs/Log.txt for full exception trace)
AutomationTool exiting with ExitCode=25 (Error_UnknownCookFailure)
RunUAT ERROR: AutomationTool was unable to run successfully.
make: *** [package] Error 25
Util/BuildTools/Linux.mk:16: recipe for target 'package' failed

I have plenty of spare disk space by the way, and 32GB of RAM, so I don't think it was running out of resources. I will try and figure out how to access the logfile in the docker image (if that got built despite the command error?) to figure out that next problem.

I tried running that docker build with a specific memory limit of 24GB using -m, no change.
And emitted the exception trace after it failed:
InternalUtils.SafeDeleteFile: SafeDeleteFile /home/ue4/UnrealEngine/Engine/Programs/AutomationTool/Saved/Cook-2020.08.18-13.31.10.txt
Log.WriteException: ==============================================================================
Log.WriteException: ERROR: Cook failed.
Log.WriteException:        (see /home/ue4/Library/Logs/Unreal Engine/LocalBuildLogs/Log.txt for full exception trace)
Log.WriteException:
Log.WriteException: CommandletException: Editor terminated with exit code 137 (signal 9) while running Cook for /home/ue4/carla/Unreal/CarlaUE4/CarlaUE4.uproject; see log /home/ue4/Library/Logs/Unreal Engine/LocalBuildLogs/Cook-2020.08.18-13.44.38.txt
Log.WriteException:   at AutomationTool.CommandUtils.RunCommandlet (Tools.DotNETCommon.FileReference ProjectName, System.String UE4Exe, System.String Commandlet, System.String Parameters, System.String& DestLogFile) [0x0076d] in <21363ae3906c428bb150fffa2029575d>:0
Log.WriteException:   at AutomationTool.CommandUtils.RunCommandlet (Tools.DotNETCommon.FileReference ProjectName, System.String UE4Exe, System.String Commandlet, System.String Parameters) [0x00001] in <21363ae3906c428bb150fffa2029575d>:0
Log.WriteException:   at AutomationTool.CommandUtils.CookCommandlet (Tools.DotNETCommon.FileReference ProjectName, System.String UE4Exe, System.String[] Maps, System.String[] Dirs, System.String InternationalizationPreset, System.String[] CulturesToCook, System.String TargetPlatform, System.String Parameters) [0x0013e] in <21363ae3906c428bb150fffa2029575d>:0
Log.WriteException:   at Project.Cook (AutomationTool.ProjectParams Params) [0x007ba] in <7a3f86f981b2444c826d69d05b013dc4>:0 Wrapped by AutomationException: Cook failed.

I don't know if that's useful to anyone. Has anyone actually succeeded in building the docker image recently, and on Ubuntu 18.04? (The docs say it was tested under 16.04, though it uses 18.04, i.e. as the Docker OS.)

Sorry for the delay, we are in the middle of the vacation season. @Axel1092 could you please have a look at this?

Thank you @germanros1987 ! I don't really understand the nature of the (permanent?) CARLA team, but while I don't expect any formal support of course, I hugely appreciate anyone looking into issues which affect me.
In fact I've run the 'make package' process that would have been the end result of doing the Docker-based map ingestion, and I still don't end up with a map that sprouts traffic lights like those shown in Bernat's very helpful video at https://www.youtube.com/watch?v=mHiUUZ4xC9o . So while it would be great to fix the docker process for others, it is not my personal roadblock right now.
I also added to #3086 while pursuing that effort, but I now think that RecastBuilder doesn't help with the traffic lights either.
I guess I should track down an existing issue or raise a new one to address the fundamental problem for me -- that I have tried all the import methods available to me, and so far failed to get CARLA-addressable traffic lights from my own RoadRunner model. And it would help so much if there was at least one very simple model available in .fbx/.xodr form that is believed to work to try out (or even .rrscene, but licensing of associated assets is a problem I guess with sharing the RoadRunner original).
For context, I am working on a proving ground model for CAV use, where we will deploy connected traffic lights, and want to get to the point of running simulation scenarios (via scenario_runner) that uses those lights. But I have totally failed to get traffic lights working in my model, except by the deprecated RoadRunner plug-in which does not set them up as CARLA objects in the same way. We are keen on CARLA because as a proving-ground provider, we will want to support future clients who may have bought into other simulation toolchains (or none), and would rather start with a licence-free solution for them to build on, which CARLA seems a great answer for.
Thanks again!
Charlie Wartnaby, Applus IDIADA, UK.

On the traffic light front by the way, in the end I gave up on trying to import them from my RoadRunner map. I never did see the run-time autocreation of traffic lights shown in https://www.youtube.com/watch?v=mHiUUZ4xC9o . The only thing that worked for me was deleting any RoadRunner-designed traffic lights, and creating new ones from CARLA blueprints, and adding those to a traffic light group (it crashed if I didn't add them to a group). So I got there in the end. Just noting this in case anyone else finds this issue googling about traffic light imports.

Hi @charlie-wartnaby, I am currently in the exact same boat as you: I want to make a Carla package for a RoadRunner map that I have exported. However, the only importation method of the RoadRunner export that "works" (things render correctly) is the deprecated UE4 Plugin method, which does not generate standalone packages and therefore it is difficult/impossible to distribute the map I have created.
If you have made any more progress on packaging RoadRunner exports and getting them to render correctly in UE4 please let me know :)

Hi @rowandempster , I stopped at the point I had working traffic lights (added in the UE Editor from the blueprint library). For my project, just sharing the top-level ?.umap file and folder of asset files is good enough, so I fear I didn't pursue the package-making process. (I'm afraid I'm on holiday so I don't have access to any of the files right now.)
I did get one slightly random OpenDrive-derived traffic light popping up (in a junction with 4 lights) after all, which at this point I didn't really want! It appears by magic using OpenDrive data somehow, but how it happens I have not tracked down yet, nor seen any documentation for.
But see also #3189 where I found the RecastBuilder tool quietly did nothing -- well maybe it wrote to a logfile I haven't yet identified, but in general it exits quietly with no evidence on the command line when things go wrong.

OK I added libxerces-c-dev to the list of apt-install packages in Prerequisites.Dockerfile which did indeed get me past the Xerces problem, thanks.
Next my docker build failed because the Python module distro was not found. I added pip and pip3 install distro to the Carla.Dockerfile command to get past that. (Would have been more elegant to add it to Prerequisites, but I didn't want to have to run all of that again.)
I don't understand why anyone else should have been able to build the Docker image without those changes -- I thought the whole point was that it gave a uniform environment for everyone? But it's my first experience with Docker.
I have not succeeded yet though. My Carla.Dockerfile build still failed with this:
  LogTexture: Display: Building textures: T_Jacket_n (BC5, 2048X2048)
  LogTexture: Display: Building textures: T_Jacket_orm (AutoDXT, 2048X2048)
Took 795.927096s to run UE4Editor, ExitCode=137
ERROR: Cook failed.
       (see /home/ue4/Library/Logs/Unreal Engine/LocalBuildLogs/Log.txt for full exception trace)
AutomationTool exiting with ExitCode=25 (Error_UnknownCookFailure)
RunUAT ERROR: AutomationTool was unable to run successfully.
make: *** [package] Error 25
Util/BuildTools/Linux.mk:16: recipe for target 'package' failed

I have plenty of spare disk space by the way, and 32GB of RAM, so I don't think it was running out of resources. I will try and figure out how to access the logfile in the docker image (if that got built despite the command error?) to figure out that next problem.
Incidentally, it is extremely painful having the 12GB assets download as part of that last stage -- if something goes wrong, it means doing it all over again. If that download could be made a separate step to get the local file, and have that ingested into the docker build, it would be a great advantage.

@charlie-wartnaby  Hi. Have you been able to find a solution to this issue?

@charlie-wartnaby Hi. Have you been able to find a solution to this issue?

I'm sorry @tungnt101294 , I haven't looked at it since. This was back in CARLA 0.9.9 or 0.9.10.

@charlie-wartnaby Hi. Have you been able to find a solution to this issue?

I'm sorry @tungnt101294 , I haven't looked at it since. This was back in CARLA 0.9.9 or 0.9.10.

@charlie-wartnaby Thanks for the reply.
I'm building CARLA 0.9.10. If you dont mind my asking, what did you do? Building another version?

Hi @tungnt101294 , I just gave up on using Docker. Instead I just run carla using 'make launch' (and then 'make launch-only').
I was trying out the Docker build as that was a recommended route for importing a new map, but in the end the only way I found I could usefully import my map from RoadRunner was to go through the deprecated instructions for importing the assets manually into Unreal Editor.

@charlie-wartnaby I was building CARLA 0.9.10 on two PCs. One (WSL2 Ubuntu 18.04, 8GB RAM) failed and produced the exact same error while the other (Manjaro <IP_ADDRESS>, 16GB) was actually successful. So I suspected the former just didnt have enough memory.

@charlie-wartnaby I was building CARLA 0.9.10 on two PCs. One (WSL2 Ubuntu 18.04, 8GB RAM) failed and produced the exact same error while the other (Manjaro <IP_ADDRESS>, 16GB) was actually successful. So I suspected the former just didnt have enough memory.

Ah interesting -- I mean my first errors were missing dependencies or something, which just looked wrong no matter what resources the PC had. But my eventual failure was on a 32 MB Ubuntu 18.04 machine. Maybe it's an Ubuntu thing rather than RAM.

所以还是没人回答 @sissiok  的问题


Add extends redeclare update method

Handle a very specific case where we need to set an argument that is part of an extended block.
extends extended_type(
    redeclare type_ identifier[X](final Y=Y),
    obj_name(
        arg_1=8,
        arg_2=1029.114,
        arg_name=new_value (if_value)
    )
);

@jmythms -- do you want to check this one out too?

@jmythms -- do you want to check this one out too?

Will be a bit late but definitely :)


TypeError for some timestamps with customized display text

Hi there! Thanks for this great directive pack.
I found the following issue: for some specific timestamps the am-time-ago throws an error:
TypeError: Cannot read property 'replace' of undefined
    at Locale.extend.relativeTime (moment.js:1023)
    at Object.substituteTimeAgo (moment.js:1755)
    at relativeTime (moment.js:1781)
    at Duration.extend.humanize (moment.js:2838)
    at Moment.extend.from (moment.js:2315)
    at updateTime (angular-moment.js:207)
    at updateMoment (angular-moment.js:241)
    at Object.fn (angular-moment.js:258)
    at Scope.$get.Scope.$digest (angular.js:14243)
    at Scope.$get.Scope.$apply (angular.js:14506)

while for other it works fine. I came to the conclusion that what affects this is the following addition I have made in my app.js file in order to customize the displayed relative times:
moment.locale('en', {
  relativeTime: {
    future: 'in %s',
    past: '%s',
    s: 'just now',
    m: '1 min ago',
    mm: '%d mins ago',
    h: '1 hour ago',
    hh: '%d hours ago',
    d: 'yesterday',
    dd: '%d days ago'
  }
});

The strange thing is that while it seems to work fine for this timestamp "2015-03-17T13:15:47.926Z" it breaks with this one "2015-04-16T13:12:07.575Z" (and others as well, this is an example).
This might be more of a moment.js issue rather than the directive, but I haven't had time to look into it.

Although I just noticed that running moment("2015-04-16T13:12:07.575Z").fromNow(); works fine..

OK i did some debugging and found that it was omission of M, MM, y and YY that led to this issue (i thought if I did not override them they would use the default values). Sorry my bad..
Correct code is:
// Customize the text of relative dates
moment.locale('en', {
  relativeTime: {
    future: 'in %s',
    past: '%s',
    s: 'just now',
    m: '1 min ago',
    mm: '%d mins ago',
    h: '1 hour ago',
    hh: '%d hours ago',
    d: 'yesterday',
    dd: '%d days ago',
    M : "a month ago",
    MM : "%d months ago",
    y : "a year ago",
    yy : "%d years ago"
  }
});


Open to Suggestions on improving the site

The site could use some more improvements so feel free to open a PR for anything that you think is an improvement or any issues that come up.
The goal is to make the website to have access to information on the pets to adopt.
The site could be accessed here: http://pawternityhub.tech/

I ran the website through google lighthouse and found some issues but these are some I  felt would be necessary to solve so far.

Set an explicit width and height on image elements to reduce layout shifts and improve CLS
Some Images in the card section do not have an alt attribute

interesting. I'll add it to the issues

A suggestion I would like to give. Can try for different font.

what kind of font u suggest?

https://fonts.google.com/share?selection.family=Crimson Text:ital@1
This one maybe

alright did you want to try it out?

Yes I'll try

Yes, I will try it out.
I have forked this project but how do i run it on my local machine?

There's instructions on the Readme


Label blinking while located on the outside of the progress bar.

Library Version [v1.1.1]
Affected Device(s) [OnePlus 8T, Android 11, minSdk 26, I haven't tested it on other devices]

I'm making an app that is updating progress bar every 50 milliseconds. When the label is located on the inside of the progress bar, everything works perfectly, but when it's outside, it's rapidly blinking. It looks like it's disappearing for a few milliseconds and then reappearing. Of course, I have a .setOnProgressChangeListener that changes the labelText.
Edit: If I'm not mistaken, it happens because of changing the progress, not the label. It's really noticeable even if I'm updating the progress every second (not every 0.05 s) so I do think that it should be fixed.
https://user-images.githubusercontent.com/42970882/126567827-f21cfd0a-69d5-40e1-9a1b-6b2d114d3f08.mp4

same here. Did you solve it ?


0.2.44 breaks fairly recent compiler

error[E0432]: unresolved import `core::ffi::c_void`
    --> /b/prz/PVT_RIFT_184/obj//cargo_home/registry/src/github.com-1ecc6299db9ec823/libc-0.2.44/src/unix/mod.rs:1151:17
     |
1151 |         pub use core::ffi::c_void;
     |                 ^^^^^^^^^^^^^^^^^ no `c_void` in `ffi`

error[E0432]: unresolved import `core::ffi::c_void`
    --> /b/prz/PVT_RIFT_184/obj//cargo_home/registry/src/github.com-1ecc6299db9ec823/libc-0.2.44/src/unix/mod.rs:1151:17
     |
1151 |         pub use core::ffi::c_void;
     |                 ^^^^^^^^^^^^^^^^^ no `c_void` in `ffi`

error[E0641]: cannot cast to a pointer of an unknown kind
   --> /b/prz/PVT_RIFT_184/obj//cargo_home/registry/src/github.com-1ecc6299db9ec823/libc-0.2.44/src/unix/bsd/freebsdlike/mod.rs:864:56
    |
864 | pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _;
    |                                                        ^^^^^------
    |                                                             |
    |                                                             help: consider giving more type information
    |
    = note: The type information given here is insufficient to check whether the pointer cast is valid

error[E0641]: cannot cast to a pointer of an unknown kind
   --> /b/prz/PVT_RIFT_184/obj//cargo_home/registry/src/github.com-1ecc6299db9ec823/libc-0.2.44/src/unix/bsd/freebsdlike/mod.rs:865:54
    |
865 | pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _;
    |                                                      ^^^^^------
    |                                                           |
    |                                                           help: consider giving more type information
    |
    = note: The type information given here is insufficient to check whether the pointer cast is valid

error[E0641]: cannot cast to a pointer of an unknown kind
   --> /b/prz/PVT_RIFT_184/obj//cargo_home/registry/src/github.com-1ecc6299db9ec823/libc-0.2.44/src/unix/bsd/freebsdlike/mod.rs:866:58
    |
866 | pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _;
    |                                                          ^^^^^------
    |                                                               |
    |                                                               help: consider giving more type information
    |
    = note: The type information given here is insufficient to check whether the pointer cast is valid

Damn, we recently lowered the required Rust version for core::ffi::c_void, maybe that was one version too low. Which Rust version are you using? rustc --version

So I've added a build bot to check that everything still works with 1.30.0 (https://github.com/rust-lang/libc/pull/1138), so that does not appear to be the case.
It would be very helpful to know which compiler version you are using, and ideally a minimum working example that reproduces the issue.

.../rustc --version
rustc 1.30.0-nightly (f7202e40f 2018-08-27)

linux cross-compiling into a BSD variant ...

I see. So this breakage is intended. That nightly is both too new - part of the 1.30 cycle - and too old: older than the first nightly in the 1.30 cycle that had core::ffi::c_void type. So when libc checks for Rust version >= 1.30 that returns true for your nightly.
We could patch the build.rs to detect whether its a nightly, and its date, and only enable c_void in new enough nightlies. Alternatively, you can just override the libc version to one that works (e.g. 0.2.43), or upgrade your toolchain to a newer nightly version: this PR of Sept 17 moved c_void into libcore, the next nightly toolchain might be new enough.

It was merged in 1.30 nightly on 2018-09-17: https://github.com/rust-lang/rust/pull/53910
You should use stable Rust version or more recent nightly.

I'm closing this as it is probably "INVALID"/"WONT FIX".


Please wait for schema agreement on table creation

In a clustered cassandra environment I'm hitting occassional errors in code which creates a table and then immediately starts writing into it.  The errors appear in the cassandra log as org.apache.cassandra.db.UnknownColumnFamilyException: Got slice command for nonexistent table my.test.  If the table was just created, this is likely due to the schema not being fully propagated.  Please wait for schema agreement on table creation.
Googling this issue it appears that this issue may be handled by other drivers by waiting for schema agreement before returning from the CREATE TABLE call.
There's a related StackOverflow response here, to quote:

The modern DataStax drivers automatically check and wait for schema agreement after you execute a schema-altering statement. Cassandra returns a special response for schema-altering statements that allows the drivers to do this automatically. Once the drivers gets that response, it (blockingly) queries the system.peers table of the node the query was executed against to check the reported schema versions of other nodes. It will continue to execute this query in a loop until either schema agreement is reached or a timeout is hit.

Seems to make sense to wait for related change event. I'll investigate this more closely.
Thank you.


TypeScript output shouldn't treat interface as a union of implementing types

Is your feature request related to a problem? Please describe.
The current treatment of interfaces treats an interface as a union of its types. This means it's actually not safe for backwards compatible usage (i.e., the server should be able to add new interface implementations in a backwards compatible way, but graphql-code-generator breaks that contract). It's not the end of the world, but I didn't see anything else about this.
Describe the solution you'd like
It's not possible to do something like
interface IAnimal { __typename: string; name: string; }
interface Dog extends IAnimal { __typename: "Dog"; favoriteDogTreatType: string; }
interface Cat extends IAnimal { __typename: "Cat"; meowVolume: number; }

since the resulting codegen would be something like this:
type Animal = IAnimal | Dog | Cat;

and this would be broken:
const animal: IAnimal = ...;
if (animal.__typename === "Dog") {
  // This is an error since this type guard only narrows to (IAnimal | Dog)
  // since it's technically valid for IAnimal to have __typename "Dog" in
  // TypeScript's world -- even though that's not possible in GraphQL world
  console.log(animal.favoriteDogTreatType);
}

One solution to this could be to use a sentinel value:
type Animal = (IAnimal & __typename: "_interface_sentinel_do_not_check_for_me_or_you_will_be_fired_") | Dog | Cat;

Describe alternatives you've considered
Status quo isn't the end of the world! :)
Additional context
The actual issues this can cause is essentially forgetting to write fallback code which then breaks when new interface implementations are added on the server side.
// This type-checks in the current version
function greetAnimal(animal: Animal): string {
  switch (animal.__typename) {
  case "Dog":
    return `Hello, puppy!`;
  case "Cat":
    return `Meow meow.`;
  }
}

This breaks when the server adds an Iguana implementation because there's no default case.

Also, as an aside, the current codegen seems to generate every case for every single interface even when they're not given. I'm not sure that this is desirable behavior.
Ostensibly it's meant to handle the case where a field on the interface is actually a more specific type (e.g., Animal has a field owner: Owner, and Doghas a fieldowner: DogOwnerwhich is an implementation of theOwner` type), but it also means that when we do
animal {
  name
}

the resulting codegen looks like
type MyFragment = ({ __typename: "Dog" } & Pick<Dog, "name">) | ({ __typename: "Cat" } & Pick<Dog, "name">)

(and it grows linearly with the number of interface implementations) whereas it's arguably more reasonably to do
type MyFragment = { name: string };

I'd definitely push for only generating the first thing when you explicitly use those fragments (e.g., animal { name ... on Dog { owner } } still picks name from Dog rather than using the interface version).

@travigd
We just merged a solution proposal from @asmundg (#6826) in<EMAIL_ADDRESS>📦
Let us know if it fits your use case.

Thanks @charlypoly! Probably won't have time to test this with my own codebase in the near future, but scrolling through the linked PR, and it looks like it doesn't address the original issue of the PR (i.e., falsely pretending like an interface is equivalent to a union of its know implementations). So the switch statement in my example above would still type-check successfully, even though it should not (*this would be a breaking change, so probably behind a config flag, but imo still important).


Update terraform

Update Terraform code for latest stable version and update Github Actions for the newer terraform version
Current version: 0.14.10
latest version: 1.3.7

Completed in #361


Total War: Warhammer II low FPS

As I have pointed out in https://github.com/ValveSoftware/Proton/issues/2542 Total War: Warhammer II sees 40% FPS drop when compared to Windows. I think this is a bit too much, and I feel maybe this is something that could be improved on dxvk's front.
Feel free to close this issue, if it doesn't pertain here. I had no way to consult before positing this, as I'm not aware there are any informal discussion channels about dxvk.

I can't do very much without an apitrace.

Sure, I'll do it when I get home.

@doitsujin forgive my lack of experience. Am I to make apitrace on Windows or on Linux?

Haven't made apitrace yet, but got good results with allowMapFlagNoWait.
Without:
02_Warhammer2_dxgi.log
02_Warhammer2_d3d11.log

With allowMapFlagNoWait set to true:
01_Warhammer2_dxgi.log
01_Warhammer2_d3d11.log

In the first case it looks like the GPU wasn't fully utilized. 40% increase in FPS, and now only 17% drop when compared to Windows. Much better!

Thanks, that explains the difference then. With that info there's no need to record an apitrace, although it could potentially be helpful regardless - if you do record one, please do so on Windows.
I wish I had an idea why exactly enabling this option breaks certain games; it really should be on by default. For now I'm going to enable this by default in the configuration options.
For now I'll enable this in the default configuration for this game, but I feel like we really need a proper solution in the long run.

I'll try to do the apitrace now. I would gladly see the gap halved once again. Below 10% FPS loss would be perfect. I don't know what are average numbers though, maybe ~17% is around average already?
Yes, this option should be turned on by default. Sorry to hear it breaks some games. Maybe it could be detected somehow when to use it and when not to?

Maybe it could be detected somehow when to use it and when not to?

No, not without breaking stuff. The only reasonable way to improve the situation is to find a proper fix, and that's hard.
I somehow doubt Warhammer II performance can be improved further if your GPU utilization is 100% already (-17% isn't greap, but not out of the ordinary especially on Nvidia), but it might turn something up.

Sadly I'm unable to make apitrace work with their new launcher. Even if I run final exe it turns on launcher exe first.

Sent email to mod manager author, he has devised a method to bypass CA launcher. If he'll share - I'll make another attempt at this.

You could just try using the dlls.
https://github.com/doitsujin/dxvk/wiki/Common-issues#apitrace

Tried. No effect. Or wasn't able to locate trace file on my machine. Also, there was absolutely no slowing down of the game, so I assumed it didn't work.

The trace files are usually on your desktop (if your on Windows) or the desktop folder inside your wine prefix.

 Now waiting patiently for the benchmark to finish.

1.7GB when compressed: https://drive.google.com/file/d/1OKW368UqyJ0EO1hUZ42Nvlift0xFnzOh/view?usp=drivesdk

I'd like to remove it once it's downloaded, since it's quite big :)

@doitsujin please notify me when it will be possible to delete the file. Thanks!

Thanks. I looked at the trace files but found nothing to further improve, feel free to delete the file.


add basic support for phone numbers api

generate random phone number based on country code WIP (LONG list of countries)
generate random phone number with random format
generate random IMEI number

was wondering if this looks ok? Phone numbers can also be formatted with dashes like 111-111-111 or with () like (111)-111-111. I currently just left it with spaces like +1 111 111 111.

now that I think about it, my whole approach may have been overkill. Most people probably don't care that much about a specific country's phone number format.

ah, and most countries have many different phone formats locally. I'm just gonna wait for some suggestions.

Hi @MiTo0o,
Thank you for the PR, this is great work. I love that you added the ability to have country codes.
In regards to your question about spaces. Can we make it an option in the url. so you can choose the format.
Examples are:
spaces
no-spaces
dashes
What do you think?

Hi @MiTo0o, Thank you for the PR, this is great work. I love that you added the ability to have country codes. In regards to your question about spaces. Can we make it an option in the url. so you can choose the format.
Examples are: spaces no-spaces dashes
What do you think?

Sounds great, I will add those three options.

hey @ageddesi do you think it's ok if we only provide the phone number formats to popular countries for now? It's a lot of work to search every countries phone number format. Some countries also have many different phone number formats.

@MiTo0o Hi, do how ever many you like for this step and then please can you raise a ticket for what needs to be done. Hopefully someone else will pick it up as part of Hacktoberfest

@ageddesi Thank you for your patience and quick responses :D. How does it look so far? Is there anything else I should clean up / do. I think I'll take your suggestion and raise a ticket for the rest of the phone number formats.

hey @ageddesi I merged the 0.13.0 branch into mine and found some problems with swagger.json, there were missing/extra commas and there are some duplicate keys. I fixed the commas, but not sure what you want to do with the duplicate keys.

Hi @MiTo0o, I have just pulled in a new way of doing the swagger docs.
We now do the openAPI spec directly in the API file itself using comments.
If you update your code to use this you can ignore the swagger.json file as it will auto generate.

oh the openAPI seems so cool, let me check it out and update

Thanks @MiTo0o sorry to be a pain, someone kindly finally set it up for me as part of hacktoberfest and handles all the conflicts I have been having

hey @ageddesi its all good :D. I'm always open to learning more. One quick thing, how do I generate swagger with openAPI? and also getting a error in another api route

the Music interface is being imported by also being created again the the same file

I pushed a fix for this a while ago on the v.0.13.0 branch. If not just
delete the inline model.
On Sun, 2 Oct 2022, 22:16 Derzan Chiang, @.***> wrote:

hey @ageddesi https://github.com/ageddesi its all good :D. I'm always
open to learning more. One quick thing, how do I generate swagger with
openAPI? and also getting a error in another api route
[image: image]
https://user-images.githubusercontent.com/76019114/193476557-5e5b1aa1-f61f-4eae-8135-a6a766e8f487.png
[image: image]
https://user-images.githubusercontent.com/76019114/193476590-b6b0a34b-6075-4a9b-81fa-bd8305bb3745.png
the Music interface is being imported by also being created again the the
same file
—
Reply to this email directly, view it on GitHub
https://github.com/ageddesi/Mocked-API/pull/79#issuecomment-1264734824,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJ5YPHN4NBNTYADZW6M5UDWBH3R7ANCNFSM6AAAAAAQ2YNF7E
.
You are receiving this because you were mentioned.Message ID:
@.***>

@MiTo0o Once you have added the OpenAPI comments to your api ts file. The next time you run the application and go to the localhost url you will see your changes refelected in the docs.

ok so the thing is my fork only has the main branch, I can't merge 0.13.0 branch into my branch ;(

ok no problem, leave it with me 👍 I will get what you have done merged in.

@all-contributors please add @MiTo0o for code.
Thanks for the contribution, Happy Hacktoberfest. I hope you will want to do more in our API. If you do like what we are doing please consider staring the repo and joining our Discord channel at https://discord.gg/yxqrkjDR87

Thanks for the contribution, Happy Hacktoberfest. I hope you will want to do more in our API. If you do like what we are doing please consider staring the repo and joining our Discord channel at https://discord.gg/yxqrkjDR87

Thank you so much! :D I had a lot of fun


[WIP] Use dep

(Need to fix AppVeyor)
Closes #300

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

:x: Build torus-cli 383 failed (commit https://github.com/manifoldco/torus-cli/commit/c4afffd46c by @arbourd)

:white_check_mark: Build torus-cli 386 completed (commit https://github.com/manifoldco/torus-cli/commit/a1c544f6c1 by @arbourd)

This is awesome, thanks so much for the contribution!

My pleasure. 🤓
Just a quick note: go list ./... | grep -v ./vendor shouldn't be need with Go 1.9+ which automatically ignores the vendor folder.


Fixed issue #3

Added multiprocessing to avoid segfaults on process exit to fix issue #3

Viktor, many thanks for the PR! I'll look into it when I get back from vacation.  Cheers!

Released a 0.3.0 version when it's fixed I hope. Many thanks for the idea and initial patch! Should fix #3 as well.


Low Budget Paper Version

Speeddating - outsourcing your job to the participants
Organising an event, with somewhere between 50 and 150 participants:

Spreadsheet: Generate short ID (easy to write down) and UUID (unique, not easily guessable) for 200 participants
Printer: Print out the IDs and UUIDs, each participant gets a sheet that says something like
"Welcome!"
"Your ID is ..."
"Speeddating explanation - make sure to write down the IDs of people you like"
"At the end, please go to https://..../UUID and write down the people you liked"
At the event, everyone who comes gets one of those sheets
At the event, people do speeddating and manually keep track of who they like. e.g. They write down the IDs and some cute stuff onto a piece of paper.
After the event, people go to their personalized link https://..../UUID
Form: The personalized link is simply an online form. Here they have to enter

their contact info
the IDs of the people they liked
the UUID is already prefilled and can't be guessed, so one participant can only enter their own stuff

Spreadsheet: Every submitted form gets put into a spreadsheet and matches get displayed through the power of spreadsheet magic
Contacting: Sending emails to all the matches, maybe this can be automated.

Note how that can be done with off-the-shelf products like Google Forms and Google Sheets.


Add a YAML to the Broker details view, under this tab we should have the custom broker editor

Users expect to have access to a YAML tab in the broker details view. Either the one from OLM or the one from the search.
We should also have one to meet their expectations.
However the YAML tab we will provide will only give a readonly view of the YAML and at the top of the tab we will add a button to redirect users to the real broker edition form.
The YAML tab should be accessible under the /yaml url of the broker details to mimic the standard behavior.

This issue is recreated on the new arkmq-org:
#5


Global shortcut

globalShortcut CommandOrControl+Shift+Left and CommandOrControl+Shift+Right may not be a good choice, given so many people usually use it to select text.

#6


Also allow the uploaded certificate to be used for SIPS, not just HTTPS

This allows point-to-point SIP calls to succeed even when /Configuration/SIP/DefaultTransport is set to Tls, which it should be for over-the-top calls anyway.
Maybe this should be an option, where the user should be able to specify with a command-line argument whether they want the certificate to apply to HTTPS, SIPS, or both. An example is --apply-to-services=https,sips.

Added new optional positional argument, a comma-separated list of ServicePurpose enum values from the /Command/Security/Certificates/Services/Activate argument list for Purpose:

_8021X (For applying 802.1x security authentication, enums can't start with a number)
AUDIT (For performing external audit logging)
HTTPS (For applying HTTPS security authentication)
PAIRING (For pairing touch devices that are not directly connected to the endpoint)
SIP (For applying SIP security authentication)
HTTP_CLIENT (For use with Mutual TLS authentication when using the xcommand HttpClient API)
WEBEX_IDENTITY (For identifying the device in end-to-end encryption scenarios on the Webex cloud. Activates a specific certificate for WebexIdentity. For this Purpose, the command requires the identifying fingerprint to be encrypted and serialized in a JWE blob.)

See the RoomOS 11.1 API documentation for more information.
If run without this new argument, the old behavior of only applying to the HTTPS server will persist:
CiscoEndpointCertificateDeployer.exe "C:\certificate.pfx" <IP_ADDRESS> admin CISCO

If you want to apply the new certificate to both HTTPS and SIPS, use this new last argument:
CiscoEndpointCertificateDeployer.exe "C:\certificate.pfx" <IP_ADDRESS> admin CISCO https,sip

This does not restart the endpoint or any SIP network services after activating the new SIPS certificate, since the new cert takes effect on the next call without any restarts on RoomOS 11.4.


[PDI-12460] - Using KettleLogStore's factory to create one logger

Build Commands:
Build:

ant -Dtestreports.dir=bin/reports/unit-test -Djunit.jvmargs=-XX:PermSize=256m -f core/build.xml clean-all resolve jacoco && ant -Dpentaho.coding.standards.version=1.0.4 -Dtestreports.dir=bin/reports/integration-test -Djunit.jvmargs=-XX:PermSize=256m -f core/build.xml jacoco-integration checkstyle publish-local

Cleanup:
rm -r ~/.ivy2/local || echo no publish local to remove
Changed files:
core/src/org/pentaho/di/core/row/value/ValueMetaBase.java
core/test-src/org/pentaho/di/core/row/value/ValueMetaBaseTest.java
Unit test coverage change:
org.pentaho.di.core.logging.KettleLogStore:

Complexity Change :  + 3.85%
Instruction Change :  + .88%
Line Change :  + 1.56%
Method Change :  + 5.88%

org.pentaho.di.core.logging.LogChannel:

Complexity Change :  + 1.61%
Instruction Change :  + .48%
Line Change :  + .69%
Method Change :  + 2.56%

org.pentaho.di.core.logging.LogChannelFactory:

Complexity Change :  + 20.00%
Instruction Change :  + 18.52%
Line Change :  + 20.00%
Method Change :  + 20.00%

org.pentaho.di.core.row.value.ValueMetaBase:

Instruction Change : -.02%

null


Warn for TODO and FIXME comments

If we find a TODO or FIXME comment while building, we should generate a
warning. This will serve as an incentive to remove these comments, and
will also reduce the likelihood that we lose track of them.

👍

ping @thoughtbot/ios

I'm 👍 on the idea.


Gradle Plugin cannot use log4j:log4j:1.2.17 as a dependency

The generated gradle-api.jar contains log4j 1.x classes which prevents using that library as a dependency in your plugin or any of its dependencies.
Expected Behavior
Plugin should build and use the correct class.
Current Behavior
Build fails because the method is unknown:
$ gradle build

> Task :compileJava FAILED
C:\Workspaces\BrokenGradle\src\main\java\BrokenGradle\BrokenGradlePlugin.java:19: error: cannot find symbol
                LogManager.exists("");
                          ^
  symbol:   method exists(String)
  location: class LogManager
1 error

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

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

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
1 actionable task: 1 executed

Context
I'm trying to execute a custom plugin that uses a class from a dependency that includes<EMAIL_ADDRESS>and calls that library's LogManager#exists() method.
Since the generated gradle-api-6.5.jar contains its own LogManager class in org/apache/log4j/LogManager that does not contain that method, a NoSuchMethodError is thrown.
I have not found a way to circumvent this by reordering the classpath or using the Worker API.
Steps to Reproduce
see https://github.com/collenda-bwa/gradle-plugin-error

Use Gradle 6.5 to init a new plugin project with Java language and Groovy buildscript DSL
Add log4j to the implementation configuration
use LogManager.exists() in the plugins code
Code won't compile

Your Environment

A plugin running in Gradle is inside the Gradle runtime itself.
While Gradle can clearly improve the situation around logging and logging from plugins in particular, it is unlikely that we will lift this specific limitation soon.


ENH: Add help_text support to action signatures

Allow optional help text strings to be associated with action parameters.
In [1]: from qiime.plugins.test_plugin.methods import blocking_test

In [2]: blocking_test.signature
Out[2]:
inputs:
    table: ParameterSpec(qiime_type=FeatureTable[Frequency], view_type=<class 'biom.table.Table'>, default=NOVALUE, help_text=NOVALUE)
parameters:
    timeout: ParameterSpec(qiime_type=Int, view_type=<class 'int'>, default=NOVALUE, help_text='The amount of time to wait before continuing execution of the method.')
outputs:
    rarefied_table: ParameterSpec(qiime_type=FeatureTable[Frequency], view_type=<class 'biom.table.Table'>, default=NOVALUE, help_text=NOVALUE)

Thanks @ebolyen, your comments should be addressed!

Thanks @ebolyen, @jairideout, and @thermokarst! Everything we discussed offline should be ready for review!

Thanks @ebolyen, got it tweaked! Should be good to go!

Thanks @ebolyen and @jairideout! Everything should be addressed, and the q2cli PR also updated to work with the new changes!

Awesome, thanks @jakereps!

🎉


Content deduplication

Hi,
Does textile support decoupling file content from its meta data? If it supposed to have social "share" function and let's say people start using it for sharing memes from different sources, more likely it going to be same image data with different EXIF (or some other headers).
Another example: some friend of mine shared a photo with me and I want to share it to some group but I would definitely want to skip location and maybe some other meta from it. There should be more optimal way than just to keep two copies of the same image data on the disk. Moreover imagine, we talk about 2Gb video file.
These guys are working on something similar (storage over ipfs) and they address this issue by dividing all the data into some blobs (which are not one-to-one files, but some more low-level chunks)
https://youtu.be/PlAU_da_U4s?t=671 here they are talking something about the storage and content deduplication

https://youtu.be/PlAU_da_U4s?t=1121 here are more details

Hi @Diomas, thanks for the info and links! Definitely will check it out.
We've just made a large around file / photo encryption (#127). Our first naive / brute force sharing impl. would just decrypt the photo, thumb, and meta data (a DAG structure on IPFS), re-encrypt with the new "thread" public key, and add the resultant files to IPFS. Certainly not ideal, but was meant to be POC. The new approach encrypts each file in the DAG with a one-off AES key, which is then encrypted with the "thread" public key and added to a different object / structure we're calling a Block. Threads are composed of these Blocks, which form a git-like chain. If you have the thread's private key, you can decrypt the files referred to by the blocks. A thread can contain content from just you, two people, a group, etc. I'm refraining from calling a Thread a blockchain because it currently doesn't have any consensus mechanism (and may never).
Here's an example of a photo directory / DAG:
https://ipfs.textile.io/ipfs/QmNd9aAmUoN9APaLUSqbsJ8gPjNMTUBfUk5UB2aEWUCjmj
And it's Block:
https://ipfs.textile.io/ipfs/Qmdu2AqJdGrtaxykdqE5wyaRav6YBr6uycKNwBgXECmgAe
This solves the problem of a single file / photo being duplicated. You can see the caption on a photo is part of the Block and not the file itself.
Related to your mention of EXIF data, I have an open PR which just strips all EXIF data for now (#138). You got me thinking that what we ought to do here is encrypt the meta data with it's own AES key so it can be shared / not-shared alongside the file / image. The meta data could also be saved in more smaller files, so you could choose exactly what to share. Currently, we're just writing it all as JSON to a file: https://github.com/textileio/textile-go/blob/master/wallet/model/model.go#L28
We don't yet support video... but it's on the roadmap. I've heard rumors of IPFS planning on natively handling encryption at the chunk / block level, which would be great for streaming. Still, your concerns around meta data would apply.
What do you think? Sound reasonable?


Migrate device_grid plugin to new danger API

Trying it out in this PR: Themoji/ios#17
@KrauseFx LMK if the directory structure makes sense

This looks amazing, thank you so much for your great work 👍

🎉

oops, ignore my ”referenced this pull request” — typoed an issue number 😖


Error using this package in a new installation

Using this package in a new installation, I could see that it has installed the chalk 5.0.0 dependency, although it does not support making a require of an ES Module, so it makes the execution of jest fail. The latest version of chalk that supports this is 4.1.2.

Same as #9, fwiw


Enabled submitting beneficiary ID via Enter key on Review page

Added spaces in import parenthesis to make everything visually consistent. Wrapped input and button in a Form element. Made style changes as per discussion in Gitter chat with @drimpact. Closes #57 .

Thanks @nikw92!


Persistence should catch Twitch broadcaster display name from ROOMSTATE

Tentatively implemented in 04ed512af565d7f043a425db7a180b764ea66f60 but would benefit from more work.


Introduce generic usage of GOMEMLIMIT in all Agents with logic suited for pure Go and Go/Python Agents.

What does this PR do?
Introduce a memory limiter that is selected based on build tags and:

For pure Go Agents, it uses a static limiter, setting GOMEMLIMIT once based on a percentage set with go_memlimit_pct, default to 98% of cgroup limit.
Fore Go+Python Agent, it uses a dynamic limiter setting GOMEMLIMIT continuously (every go_dynamic_memlimit_interval_seconds) based on Python consumption. go_memlimit_pct is not applied in this case. This is only activated if Python telemetry is activated. It does NOT fallback to static limiter as it's not suited to mixed workload.

Motivation
Improve Agent operability.
Additional Notes
Replaced existing mechanism for trace-agent and system-probe. It will behave the same except that the percentage has been increased to 98% as 10% of "lost" memory seem a bit high, we can review the default value if it does not work properly internally.
Possible Drawbacks / Trade-offs
Currently I put a hook in pkg/collector/python/init.go to set a variable with Python memory usage. It's probably not the cleanest way. I've seen we already have a (more expensive?) GetPythonInterpreterMemoryUsage in pkg/collector/python/helpers.go.
Waiting on @DataDog/agent-shared-components feedback on the best way to get this information.
Describe how to test/QA your changes
No QA card created for that as we're going to test that internally.
Reviewer's Checklist

[x] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[x] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[x] A release note has been added or the changelog/no-changelog label has been applied.
[x] Changed code has automated tests for its functionality.
[x] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[x] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[x] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[x] If applicable, the need-change/operator and need-change/helm labels have been applied.
[x] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[x] If applicable, the config template has been updated.

I think the eBPF map is counted in kernel memory

There are also perf buffers and ring buffers, which are mmap-ed. Those are specifically called out in the Go documentation as not being included.

It's currently running with 90% from #16190

That was just merged yesterday, but @paulcacheux and I have already decided that 90% is insufficient and we need a more dynamic approach to system-probe.

It's currently running with 90% from #16190

That was just merged yesterday, but @paulcacheux and I have already decided that 90% is insufficient and we need a more dynamic approach to system-probe.

That's similar to Agent with Python and I think we can work to fit it with the dynamicMemoryLimiter, WDYT?

Interesting. On our large deployments, sparing 10% of >1GB sounds significant but if you already performed some tests, 90% is probably a value we can go with, knowing that the GC can go above it if necessary and, in any case, we can adjust that per container later if we need to.

Yes I completely understand the rationale behind experimenting with values higher than 90%, also open to testing and adapting the values! And to be clear, I'm just suggesting to keep 90% for the trace-agent only. (we can have it under apm_config in the datadog.yaml if it makes sense)

Interesting, I'm going to warn the Serverless team about the above message, it shouldn't have alerted 🤔

@brycekahle I've added the ability to compute the external value based on self cgroup stat, hope it works for you, you can customize the function of course, my implementation is just an example.
@ahmed-mez I've set parameters per Agent and set trace-agent default to 90%

@brycekahle I've added the ability to compute the external value based on self cgroup stat, hope it works for you, you can customize the function of course, my implementation is just an example.
@ahmed-mez I've set parameters per Agent and set trace-agent default to 90%


akash tx update response & behavior when provider is out of resources

When a user updates his deployment, he may get the following, confusing him, message:

in the following example he was using akashlytics to update his deployment

web: undefined [Warning] [FailedScheduling] [Pod] 0/6 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 5 Insufficient cpu.
web: undefined [Normal] [SuccessfulCreate] [ReplicaSet] Created pod: web-6db9665ccb-92p4v
web: undefined [Normal] [ScalingReplicaSet] [Deployment] Scaled up replica set web-6db9665ccb to 1

This is happening because K8s won't destroy an old pod instance until it ensures the new one has been created.
Since there is no available node for deploying the new pod, it gets stuck in "Running" & "Pending" state.
Things will move on as soon as one of the nodes gets enough CPU, RAM & disk requested by the deployment.
This is how K8s is working in order to prevent the service outage, however the user might want to get a better message. OR, alternatively, a user could be granted an option such as --force which would destroy the previously running Pod, i.e. that would probably be similar to destroy & recreate method.
root@foxtrot:~# kubectl -n $NS get pods
NAME                   READY   STATUS    RESTARTS   AGE
web-69989588c7-2w5c4   1/1     Running   0          17h
web-6db9665ccb-92p4v   0/1     Pending   0          18m

root@foxtrot:~# kubectl -n $NS describe pods | grep -Ew "^Name:|cpu:"
Name:         web-69989588c7-2w5c4
      cpu:                10
      cpu:                10
Name:           web-6db9665ccb-92p4v
      cpu:                10
      cpu:                10

Jan 04 12:08:23 foxtrot.provider start-provider.sh[349407]: D[2022-01-04|12:08:23.444] inventory fetched                            module=provider-cluster cmp=service cmp=inventory-service nodes=7
Jan 04 12:08:23 foxtrot.provider start-provider.sh[349407]: D[2022-01-04|12:08:23.445] node resources                               module=provider-cluster cmp=service cmp=inventory-service node-id=foxtrot.provider available-cpu="units:<val:\"6875\" > attributes:<key:\"arch\" value:\"amd64\" > " available-memory="quantity:<val:\"16263143424\" > " available-storage="quantity:<val:\"225335708095\" > "
Jan 04 12:08:23 foxtrot.provider start-provider.sh[349407]: D[2022-01-04|12:08:23.445] node resources                               module=provider-cluster cmp=service cmp=inventory-service node-id=golf.provider available-cpu="units:<val:\"125\" > attributes:<key:\"arch\" value:\"amd64\" > " available-memory="quantity:<val:\"30669094912\" > " available-storage="quantity:<val:\"880184186644\" > "
Jan 04 12:08:23 foxtrot.provider start-provider.sh[349407]: D[2022-01-04|12:08:23.445] node resources                               module=provider-cluster cmp=service cmp=inventory-service node-id= available-cpu="units:<val:\"0\" > attributes:<key:\"arch\" > " available-memory="quantity:<val:\"0\" > " available-storage="quantity:<val:\"0\" > "
Jan 04 12:08:23 foxtrot.provider start-provider.sh[349407]: D[2022-01-04|12:08:23.445] node resources                               module=provider-cluster cmp=service cmp=inventory-service node-id=alpha.ingress available-cpu="units:<val:\"3625\" > attributes:<key:\"arch\" value:\"amd64\" > " available-memory="quantity:<val:\"13253083136\" > " available-storage="quantity:<val:\"849673462802\" > "
Jan 04 12:08:23 foxtrot.provider start-provider.sh[349407]: D[2022-01-04|12:08:23.446] node resources                               module=provider-cluster cmp=service cmp=inventory-service node-id=bravo.ingress available-cpu="units:<val:\"8025\" > attributes:<key:\"arch\" value:\"amd64\" > " available-memory="quantity:<val:\"22012821504\" > " available-storage="quantity:<val:\"313339421714\" > "
Jan 04 12:08:23 foxtrot.provider start-provider.sh[349407]: D[2022-01-04|12:08:23.446] node resources                               module=provider-cluster cmp=service cmp=inventory-service node-id=charley.ingress available-cpu="units:<val:\"5625\" > attributes:<key:\"arch\" value:\"amd64\" > " available-memory="quantity:<val:\"27698855936\" > " available-storage="quantity:<val:\"96585534905\" > "
Jan 04 12:08:23 foxtrot.provider start-provider.sh[349407]: D[2022-01-04|12:08:23.446] node resources                               module=provider-cluster cmp=service cmp=inventory-service node-id=delta.ingress available-cpu="units:<val:\"3625\" > attributes:<key:\"arch\" value:\"amd64\" > " available-memory="quantity:<val:\"31188185088\" > " available-storage="quantity:<val:\"880234408520\" > "

workaround

Create /usr/local/bin/akash-force-new-replicasets.sh file

cat > /usr/local/bin/akash-force-new-replicasets.sh <<'EOF'
#!/bin/bash
#
# Version: 0.1 - 22 March 2023
# Files:
# - /usr/local/bin/akash-force-new-replicasets.sh
# - /etc/cron.d/akash-force-new-replicasets
#
# Description:
# This workaround goes through the newest deployments/replicasets, pods of which can't get deployed due to "insufficient resources" errors and it then removes the older replicasets leaving the newest (latest) one.
# This is only a workaround until a better solution to https://github.com/akash-network/support/issues/82 is found.
#

kubectl get deployment -l akash.network/manifest-service -A -o=jsonpath='{range .items[*]}{.metadata.namespace} {.metadata.name}{"\n"}{end}' |
  while read ns app; do
    kubectl -n $ns rollout status --timeout=10s deployment/${app} >/dev/null 2>&1
    rc=$?
    if [[ $rc -ne 0 ]]; then
      NEWEST_RS="$(kubectl -n $ns get replicaset -o json -l akash.network/manifest-service --sort-by='{.metadata.creationTimestamp}' | jq -r '(.items | reverse)[0] | .metadata.name')"
      NEWEST_PODS="$(kubectl -n $ns get pods -l akash.network/manifest-service=$app -o jsonpath='{.items[?(@.metadata.ownerReferences[0].name=="'${NEWEST_RS}'")].metadata.name}')"

      INSUFFICIENT_RESOURCES=0
      for pod in $NEWEST_PODS; do
        if kubectl -n $ns describe pod $pod | grep -q "Insufficient"; then
          INSUFFICIENT_RESOURCES=1
          break
        fi
      done

      if [[ $INSUFFICIENT_RESOURCES -gt 0 ]]; then
        OLD="$(kubectl -n $ns get replicaset -o json -l akash.network/manifest-service --sort-by='{.metadata.creationTimestamp}' | jq -r '(.items | reverse)[1:][] | .metadata.name')"
        for i in $OLD; do kubectl -n $ns delete replicaset $i; done
      fi
    fi
  done
EOF

Mark it as executable file

chmod +x /usr/local/bin/akash-force-new-replicasets.sh

Create the crontab job /etc/cron.d/akash-force-new-replicasets to run the workaround every 5 minutes

cat > /etc/cron.d/akash-force-new-replicasets << 'EOF'
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
SHELL=/bin/bash

*/5 * * * * root /usr/local/bin/akash-force-new-replicasets.sh
EOF

Workaround has been added to the docs https://docs.akash.network/providers/akash-provider-troubleshooting/force-new-replicaset-workaround by @chainzero

Let the user define what kind of SLA he wants on his deployments.
If he is ok with a short downtime during redeployment then just set the strategy to Recreate instead of Rolling.
That was rhe old pod is taken down first before spinning up a new pod.
If he want high-availibility SLA then set strategy to Rolling (and replicas to 2+).
Other thing is EvictionPolicy:
You can set to evict pods with a lower priorityClass whenever a higher priority pod gets scheduled or whenever the node has an eviction pressure (is full).
After pods are evicted (force delete) and node is freed up, new pod schedules can take place.
This way you have a disruption of the lower priority pods, not the highest prio ones. And as soon as that temporary extra pod during rrdeployment is gone the evicted low prio pod would fit back onto the node too.
And the last thing:
If the user buys a certain amount of resources the resources should get reserved using a resourcequota.
This way we make sure there is always room left.
I am mentioning all this because a shell script as a cronjob doesn't really feel like the right "cloud-native" way of working.
Kubernetes has so many powerful features, especially for these type of scheduling use-cases that it is a waste not to do it the correct way.
The other thing is:
A professional provider would not let its cluster fill up completely and always keep a margin. I would suggest to make some margin mandatory.
and to make capacity monitoring and management mandatory (guidelines?).
This issue should be an edge use-case as node fill-ups should not happen.
the focus of this issue should be to prevent, not to remediate in heinsight.

Let the user define what kind of SLA he wants on his deployments. If he is ok with a short downtime during redeployment then just set the strategy to Recreate instead of Rolling. That was rhe old pod is taken down first before spinning up a new pod. If he want high-availibility SLA then set strategy to Rolling (and replicas to 2+).
Other thing is EvictionPolicy: You can set to evict pods with a lower priorityClass whenever a higher priority pod gets scheduled or whenever the node has an eviction pressure (is full). After pods are evicted (force delete) and node is freed up, new pod schedules can take place. This way you have a disruption of the lower priority pods, not the highest prio ones. And as soon as that temporary extra pod during rrdeployment is gone the evicted low prio pod would fit back onto the node too.
And the last thing: If the user buys a certain amount of resources the resources should get reserved using a resourcequota. This way we make sure there is always room left.
I am mentioning all this because a shell script as a cronjob doesn't really feel like the right "cloud-native" way of working. Kubernetes has so many powerful features, especially for these type of scheduling use-cases that it is a waste not to do it the correct way.
The other thing is: A professional provider would not let its cluster fill up completely and always keep a margin. I would suggest to make some margin mandatory. and to make capacity monitoring and management mandatory (guidelines?).
This issue should be an edge use-case as node fill-ups should not happen. the focus of this issue should be to prevent, not to remediate in heinsight.

Thank you @sterburg for your observations, all are making total sence to me.
I've turned this into the discussion post here


Admin needs to configure waffle

https://waffle.io/SilkNetwork/Silk-Core

It should be configured now.


Portainer Endpoint Failure message when primary endpoint is down

Bug description
A clear and concise description of what the bug is.
Expected behavior
A clear and concise description of what you expected to happen.
Briefly describe what you were expecting.
Steps to reproduce the issue:
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Technical details:

Portainer version:
Docker version (managed by Portainer):
Platform (windows/linux):
Command used to start Portainer (docker run -p 9000:9000 portainer/portainer):
Browser:

Additional context
Add any other context about the problem here.

Hi, i am using portainer/agent:lastest docker images to deploy  in multi node docker swarm environment.
I am getting error while i reload the page as "Endpoint connection Failure/Down", and in the Home screen primary down . When i did analysis, i found the the Primary agent consumed the resource limit i have mentioned in the compose file.
Is there any way to make other portainer agents running in multi node cluster as primary?( Like docker elects Leader from Manager)


Remove WPS support

Using WPS functions causes link errors since esp8266 library version 2.4.0:
/var/folders/9q/kc98p7l11fgctj4y1b8t344h0000gn/T/arduino_build_185922/libraries/PersWiFiManager/PersWiFiManager.cpp.o: In function `PersWiFiManager::attemptConnection(String const&, String const&)':
/Users/peter/code/arduino/libraries/PersWiFiManager/PersWiFiManager.cpp:30: undefined reference to `WPS_is_unavailable_in_this_configuration__Please_check_FAQ_or_board_generator_tool'
/var/folders/9q/kc98p7l11fgctj4y1b8t344h0000gn/T/arduino_build_185922/libraries/PersWiFiManager/PersWiFiManager.cpp.o:(.text._ZNSt17_Function_handlerIFvvEZN15PersWiFiManager17setupWiFiHandlersEvEUlvE0_E9_M_invokeERKSt9_Any_data+0x3e): undefined reference to `WPS_is_unavailable_in_this_configuration__Please_check_FAQ_or_board_generator_tool'
collect2: error: ld returned 1 exit status

Same here.   @gnoddep did you find any other way to bypass this?  doesn't look like this PR would be pulled and published soon..  @r-downing would it?   that's breaking the compilation completely (arduino/platformio).


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-k8s-27-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3949

Questions ?
Please refer to the Backport tool documentation


chore: bumps aws-actions/amazon-ecr-login

SUMMARY

Bumps aws-actions/amazon-ecr-login from v1 to v1.5.3
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

Merge, build an ephemeral environment on a new trivial PR.
If it works, champagne! If it fails, well... assess and/or roll back.
ADDITIONAL INFORMATION

[ ] Has associated issue: Fixes #17819
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@rusackas I believe @v1 is always using the latest release from the v1 branch. Comparing the @v1 and @v1.5.3 tags/releases, it looks like they're identical:

So I'm not sure we need to pin this.

Well that's... odd. But, well, ok then! Closing this and the related issue, since that must've effectively fixed itself.


Translate native objects still not working

Related to this one:#2064
I need to translate native objects. But I do not know how to do better.
According to #2064's answer:
To translate native objects you need to use the same .txt translation files as you would have used the past and just include them somewhere in the project folder.They will be automatically picked up by the compiler.
I put translation.txt files into my project and publish to my server but it still no working.
Is there anything else I should know ?

Hi @NickLin1017,
I'm not sure what you mean by native objects, but have you had a look at the documentation?
Working with Translation Files

Hi @NickLin1017,
If you are having the issues with translating base objects using the old txt format, would you be able to narrow it down to a simple case that you could share with us?
For example:
I have a base code unit which has a TextConst with a value "Good evening"
OBJECT Codeunit 50105 50105
{
  OBJECT-PROPERTIES
  {
    Date=18-05-01;
    Time=12:02:47;
    Modified=Yes;
    Version List=;
  }
  PROPERTIES
  {
    OnRun=BEGIN
            MESSAGE(MyConst);
          END;

  }
  CODE
  {
    VAR
      MyConst@1000 : TextConst 'ENU=Good evening';

    BEGIN
    END.
  }
}

Then I add an extension which has the following translation file translations.txt anywhere in the project:
C50105-P2818-L30:50105
C50105-Q1000-P2818-L128:MyConst
C50105-Q1000-P26171-A1033-L999:Good night

When I run the codeunit, I get the modified value of Good night
pageextension 50106 TranslationExt extends "Customer List"
{
    trigger OnOpenPage();
    begin
        Codeunit.Run(50105);
    end;
}

@thpeder
Thank you for your response
Yes,I have already seen that file.
It seems that only custom Fields can be translated.
@dennisfrostlander
Thank you for your response.
I mean to translate a native page.
For Example:
I want to translate words marked in yellow.

Then I add an extension which has the following translation file translations.txt anywhere in the project:

When I run the Customer Card, I can not get the modified value.

@NickLin1017 could you please tell us which version of the AL extension and platform are you using? Did you generate the .txt file using CSIDE as described here https://docs.microsoft.com/da-dk/dynamics-nav/how-to--add-translated-strings-by-importing-and-exporting-multilanguage-files ?

@DominikDitoIvosevic
I use AL Language 0.15.18771 and Publish on Nav 2018.
Yes,I generate the .txt file using CSIDE.

@DominikDitoIvosevic
I re-generate Translate.txt file.
I succeed! Thank you very much.

@DominikDitoIvosevic
Just beginning there is a correct display of the translation.
But I use notepad to re-save translate file,then the translation will fail to display.

@NickLin1017 the problem could be because you are using notepad which you shouldn't. Could you please try not opening with notepad but with Visual Studio Code instead? I think what might be happening is that when you save with notepad the encoding of the file changes and then the file gets broken somehow.

@DominikDitoIvosevic
Thanks,
I have no problem with Visual Studio Code.
But how can we switch language to our target language in D365 BC?
Or is there anything else we should do or pack in to extension besides translation file?

@NickLin1017 are you talking about .xliff or .txt translation files?

@DominikDitoIvosevic
I talking about translation files.
I have no other language options,so I can't see my Translate Extension result in other languages.

Not to keep the same discussion in two different places, since your question has also been asked here #2162 I'll close this Issue.


recon_surf//functions.sh: line 38: -debug: command not found

It seems fs_time ($timecmd) should support a -debug flag but when called in the following manner on a native installation on my Mac (M1, zsh 5.9 (x86_64-apple-darwin22.0), GNU bash, version 5.2.26(1)-release (aarch64-apple-darwin22.6.0)), it does not like it. When I removed it it seemed to proceed okay. Not sure if it is an issue with the Mac shell.
https://github.com/Deep-MI/FastSurfer/blob/3622c13c049a367e72ca9c0db8332c0493101db7/recon_surf/functions.sh#L38
...

./recon-surf.sh --sid 140 --sd /Users/USERNAME/my_fastsurfer_analysis --t1 /Users/USERNAME/my_fastsurfer_analysis/140/mri/orig.mgz --asegdkt_segfile /Users/USERNAME/my_fastsurfer_analysis/140/mri/aparc.DKTatlas+aseg.deep.mgz --threads 1 --parallel

freesurfer-macOS-darwin_x86_64-7.4.1-20230614-7eb8460
$Id$
Darwin USERNAMEs-MacBook-Pro-2.local 22.6.0 Darwin Kernel Version 22.6.0: Mon Apr 22 20:50:39 PDT 2024; root:xnu-87<IP_ADDRESS>5.2~1/RELEASE_ARM64_T8103 arm64

================== Checking validity of inputs =================================

 RUNNING both hemis in PARALLEL
 RUNNING 1 number of OMP THREADS
 RUNNING 1 number of ITK THREADS

Checking Input Segmentation Quality ...
python3.10 /Users/USERNAME/FastSurfer_dev/FastSurferCNN/quick_qc.py --asegdkt_segfile /Users/USERNAME/my_fastsurfer_analysis/140/mri/aparc.DKTatlas+aseg.deep.mgz
/Users/USERNAME/FastSurfer_dev/recon_surf//functions.sh: line 38: -debug: command not found

Hi, not sure what is going on maybe @dkuegler can take a look as I found this commit: https://github.com/Deep-MI/FastSurfer/commit/56ac5fb998f0d05150f1905c5e5e5393d948c225 which says it adds support for the -debug flag.

First off, thank you for reporting this issue.
This should really have been caught before. It never raised an issue for me, because I usually test on Ubuntu and our mac testing is not as robust as it needs to be :(.
In particular, the -debug does not need to be in there. But it specifically only leads to a real problem, if timecmd is set to empty (see https://github.com/Deep-MI/FastSurfer/blob/3622c13c049a367e72ca9c0db8332c0493101db7/recon_surf/functions.sh#L15).
The fix is equally as simple, the -debug was a remnant of debugging in any case.

Has been merged into dev yesterday. Thanks

Thanks!
Speaking of Mac testing, the other change I had to make was to change all #!/bin/bash to #!/usr/bin/env bash since, at least if the updated version of bash is installed through homebrew, the former is always GNU bash, version 3.2.57(1)-release (arm64-apple-darwin22) while the later dynamically goes to GNU bash, version 5.2.26(1)-release (aarch64-apple-darwin22.6.0). Even if the initial entry script was called with bash ... which uses the correct version 5 bash, some of the .sh scripts were calling other scripts and those were executed by version 3 bash which some scripts don't like. Happy to make another issue if you'd like.

Thanks, yes, I had noticed that also. There is two ways to fix it:

either - as you propose - modify the first line of the scripts (and we need to check that this is portable across linux and windows versions!), or

replace all |&with 2>&1 |which should be supported in older bash versions. I think this option makes more sense (and I hope that that is the only feature from bash v4.0 that we use).

I implemented option 2, so only bash 3.2 is now required. Also updated the requirements.mac.txt to more modern versions (and excluding some versions that break things, but maybe not all).


Stop using host_network: true

I prefer to have this mode only as a temp workaround, I think it can have conflict with other addons? If there are other common ports used?
Or maybe make this mode an option that can be turned off by users? So users can open ports they need..
I had call drops on softphones though after 32 sec, when this mode was disabled... This is a common issue... Maybe it was because of the RTP ports, there were only 8 configured, maybe we do need more? Or the custom range was not configured properly?
I want to investigate this again, would be great if I could turn off host again and test with custom ranges....
Maybe something for later?
Thnx

Or maybe make this mode an option that can be turned off by users? So users can open ports they need..

Not possible currently.

I totally agree that we should move away from host network, but I think we should wait for https://community.home-assistant.io/t/add-support-for-port-ranges-in-add-on-config-yaml/375695/5.
We can also think about implementing it in HA by ourselves, and send them a PR.

Are you really sure that you want to remove the host network feature in the future?
I recommend on reading about things like:
Double NAT and SIP
Without using the host network you will introduce another NAT at docker networking.
As most people at home have the usual IPv4 LAN behind home router doing NAT, it will be required that those routers are ALGs and are SIP-aware. If they support it, then modifing SIP packets internal IP adresses will happen and everything is fine.
If not, things will not work properly.

I think it is also time for the HA project as a whole to move on and also support IPv6 properly.
Of couse this will cause other issues as changing dynamic IPv6 prefixes from ISP.
However, this should be doable.
So we can - at some day - get rid of all these bad old things like NAT.

Pls, don't remove it :-)

I would recommend to limit the port range in rtp.conf.
Currently asterisk could choose from 10000-20000. IMHO this is way too much for just a simple intercom setup.
WebRTC muxes RTP and RTCP onto one port.
Normal clients could also use dedicated ports for each.
So I would assume that something like 100 UDP ports should be enough if asterisk also does the media bridging with direct_media=no.

I would doubt there would be any issue with the setup unless by the port range configuration. But it's not worth it to argue, as HA does not support port range anyway.


How to install plugin ik analyzer

when i install ik analyzer plugin ,it has error.
[opensearch@opensearch-cluster-master-0 bin]$ opensearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.2/elasticsearch-analysis-ik-8.1.2.zip
-> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.2/elasticsearch-analysis-ik-8.1.2.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.2/elasticsearch-analysis-ik-8.1.2.zip
[=================================================] 100%??
-> Failed installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.2/elasticsearch-analysis-ik-8.1.2.zip
-> Rolling back https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.2/elasticsearch-analysis-ik-8.1.2.zip
-> Rolled back https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.2/elasticsearch-analysis-ik-8.1.2.zip
Exception in thread "main" java.lang.IllegalArgumentException: property [opensearch.version] is missing for plugin [analysis-ik]
        at org.opensearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:250)
        at org.opensearch.plugins.InstallPluginCommand.loadPluginInfo(InstallPluginCommand.java:811)
        at org.opensearch.plugins.InstallPluginCommand.installPlugin(InstallPluginCommand.java:870)
        at org.opensearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:275)
        at org.opensearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:249)
        at org.opensearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:100)
        at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138)
        at org.opensearch.cli.MultiCommand.execute(MultiCommand.java:104)
        at org.opensearch.cli.Command.mainWithoutErrorHandling(Command.java:138)
        at org.opensearch.cli.Command.main(Command.java:101)
        at org.opensearch.plugins.PluginCli.main(PluginCli.java:60)

Where can I find ik plugin for opensearch offical? https://github.com/soosinha/opensearch-analysis-ik ?

@crystal-lee analysis-ik plugin you are trying to install is built for Elasticsearch, and cannot be installed in OpenSearch.
We do not have an official plugin supported by the project. We would be more than happy if you'd like to contribute one.
Side note: @elfisher is this something worth pulling into the project and maintain it? (assuming community contributes)

Side note: @elfisher is this something worth pulling into the project and maintain it? (assuming community contributes)

Definitely.

some one has already finish it.    https://github.com/soosinha/opensearch-analysis-ik
only need update the dependency of opensearch and complie. it worked ok

@crystal-lee
How to update and compile?
Thx!


SQL Server Import Extension - Limit on Input CSV File Size?

Hi,
Is there a limit on the size of the file to be imported for the SQL Server Importer Extension?  I cant see it in the documentation but assume an upper limit to the extension since Im getting an error with a large csv I have.
The import works with a small head of a large file (e.g 1000 lines), but cant determine what the max size I can use is so I can try import close to that?
Thanks!

Also, how do you see the cause of an error?
All I see is:
'Error inserting data into table' with no reason?


cvat is changing unintentionally my image

Actions before raising this issue

[X] I searched the existing issues and did not find anything similar.
[X] I read/searched the docs

Steps to Reproduce
when i upload my dataset, cvat resized my images , that is why I am taking wrong labling coordinates
how can i solve this ?

Expected Behavior
No response
Possible Solution
No response
Context
No response
Environment
No response

How we can reproduce the issue?


RGB21 example does not display assetOwner & error when transfering this asset

assetOwner not displayed

When I cargo run --example rgb21 with examples/rgb21.rs modified by adding my own outpoint under beneficiary and setting testnet to true in verified_contract .validate call, the stdout only shows (naming=(ticker=("TEST"), name=("Test uda"), details=~), precision=0) at the end of the output where I would also expect the owner to be displayed as is the case with the RGB20 example.
When importing this contract and rgb state <contract_id> RGB21 the full output is this:Global:
  spec := (naming=(ticker=("TEST"), name=("Test uda"), details=~), precision=0)
  created :=<PHONE_NUMBER>)
  terms := ("")
  tokens := (index=(2), ticker=~, name=~, details=~, preview=1((type=(type=("text"), subtype=~, charset=~), data=0x0000)), media=~, attachments={}, reserves=~)

Owned:
  assetOwner:

The assetOwner is also not shown with the provided examples/rgb21-simplest.contract.rgb running rgb state
As an aside, there is an Error: unsupported value `2` for enum `ContainerVer` encountered during decode operation when rgb import a contract created after the recent changes (after commit 943c65d). I assume due to rgb-contracts not yet being updated to contract version 2.

rgb transfer error

I am not sure this is correlated to the above issue.
After importing the example RGB21 contract, creating an invoice and a psbt file, rgb transfer shows Error: state provided via PSBT inputs is not sufficient to cover invoice state requirements.
full logs in which I used rgb aliases for different data directories:$ rgb3 import examples/rgb21-old.contract.rgb
Contract rgb:2uMxdEm-oeF1WC9Hb-t4cw7YJVt-hVZdGoCdS-RnYoKXAXj-5h4pgLs imported to the stash
$ c21="rgb:2uMxdEm-oeF1WC9Hb-t4cw7YJVt-hVZdGoCdS-RnYoKXAXj-5h4pgLs"
$ rgb4 import examples/rgb21-old.contract.rgb
Contract rgb:2uMxdEm-oeF1WC9Hb-t4cw7YJVt-hVZdGoCdS-RnYoKXAXj-5h4pgLs imported to the stash
$ rgb4 invoice $c21 RGB21 1 tapret1st:b82a11ea842e99508636d59a3338d932d02618fa28a78123b1df591b20b8eeb0:0
rgb:2uMxdEm-oeF1WC9Hb-t4cw7YJVt-hVZdGoCdS-RnYoKXAXj-5h4pgLs/RGB21/1+utxob:2nc7Ab4-PYTqVQfZS-hrzKmfgn3-kcnYE1rog-MN4vggmW1-PuiLVfm
$ btc-cold construct -k "output(0) TAPRET(0)" -i "b4c1b479bdc64ab637f408996ebc20288ab6192f329b87df56f3429327dd2d05:1 /0/0" ~/Library/Application\ Support/Descriptor\ Wallet\ Testnet/w3.wallet transfer21_rgb3_to4.psbt 10

Wallet descriptor:
tr([39908a2e/86h/1h/0h]tpubDCc6J2ZLbYqEqWiFS893Z8y5ckHRV2HRj7nqyh5t6GpPEJcPUTgAdoxz2yumZmHLKbWCCbLcdp9C3x6fi38k9Pv2nHaGowv1v42gTxwFtnQ/*/*)#kmzzt3ac

Re-scanning network testnet using electrum.blockstream.info:60001 ... done

PSBT: 70736274ff01005e0200000001052ddd279342f356df879b322f19b68a2820bc6e9908f437b64ac6bd79b4c1b40100000000ffffffff01fe510000000000002251208cd3830b00d4f35eb9dd82b21bd6356070ad55263bf464878caf0caba89374bc000000004f01043587cf034f0903b580000000cab6430d20d8ba3fc0e673edc4ac6f1950dd98e6ea0f325cbb66b909aa94a50d028f9abe2069ff69370b2793ae50cdb3b336a0159e9f46b8c506650a5a6910f3061039908a2e56000080010000800000008000010089010000000196b1fda2828defdb4dfba5835e37c6ab44b77f7471574edc6bd21fddd1064a380000000000ffffffff02ba851a0000000000225120d5aa23f70c061c526ab8232ef4bc19bcdbc2248f2ef3cb68629c068d7c59747c08520000000000002251204a3e2d16cd2d4c82fddef2c613718ae8836f7dcaac1aa9be9e4a48d541a3d9ae00000000010304010000002116efac612b72e0a9f003967a77b19961dfd687a6c61c7b174a41827d2edc0dd700190039908a2e5600008001000080000000800000000000000000011720efac612b72e0a9f003967a77b19961dfd687a6c61c7b174a41827d2edc0dd700002202032ac2addf1867f615237399510618068275f17f246011b189e230489243d4c6041839908a2e56000080010000800000008001000000000000000105202ac2addf1867f615237399510618068275f17f246011b189e230489243d4c60409fc06544150524554000000
$ rgb3 transfer transfer21_rgb3_to4.psbt rgb:2uMxdEm-oeF1WC9Hb-t4cw7YJVt-hVZdGoCdS-RnYoKXAXj-5h4pgLs/RGB21/1+utxob:2nc7Ab4-PYTqVQfZS-hrzKmfgn3-kcnYE1rog-MN4vggmW1-PuiLVfm transfer21_rgb3_to4.rgb
Error: state provided via PSBT inputs is not sufficient to cover invoice state requirements.

Fixed in the master tip


"Map" link doesn't work

The error receives:
`puppet.js:307 GET http://localhost:8080/KitchenSink/Geo 404 (Not Found)PuppetNetworkChannel.xhr @ puppet.js:307PuppetNetworkChannel.changeState @ puppet.js:246PuppetDOM.morphUrl @ puppet-dom.js:67PuppetDOM.clickHandler @ puppet-dom.js:100
puppet.js:285 Uncaught Error: PuppetJs JSON response error. Server responded with error 404 Not Found
Error 404: Resource "/kitchensink/geo" not found.`

After fixed on NavPage, the error is the same as in https://github.com/StarcounterSamples/KitchenSink/issues/10

This is fixed by @aloscha in #10


Fix #333: introduce ziterate for iterating over IPs

This is supposed to fix #333 but isn't quite working just yet and I'm not sure why -- either there is a bug in the cyclic generator used in zmap or I've misunderstood/botched the implementation.  Posting this here in the hopes of getting some assistance with tracking down the cause of this bug and getting this tool landed.
Example runs are below.
Note that these never return all 256 IPs:
$ echo <IP_ADDRESS>/24 > /tmp/w
$  ./src/ziterate -w /tmp/w
<IP_ADDRESS>
<IP_ADDRESS>
$  ./src/ziterate -w /tmp/w
<IP_ADDRESS>
$  ./src/ziterate -w /tmp/w
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
$  ./src/ziterate -w /tmp/w
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>

When specifying the number of shards, shard number and seed, things seem to be more consistent but still not correct.

Does these commits fix the original don't see all IPs problem, or does this still have that problem? This fell off my radar, but hopefully I can take a look in the next couple of days.

@zakird that problem still exists.  I can confirm that zmap doesn't seem to have this problem when using the --dryrun option as suggested by @aaspring, so the issue is likely something I've introduced.

@zakird, I believe I've fixed all of the issues I initially encountered.  The tool appears to work now.

OK Great! I'll take a look today and try to get merged into master.

@dadrian I'm currently editing much of this code. It probably makes a lot more sense to wait until that revision to put in comments since the things you're currently commenting have since been fixed.

I made some additional changes and have merged this into master. It will be released with ZMap 3.0, but can be run from the repo until then.

Thanks for the help getting this cleaned up and landed, @zakird and @dadrian.


[Storage] Fix read typehint in _download_async.py

All the overloads for def read were not async 😄

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-storage-blob


Allowing host functions to return an error instead of panicing

Right now, host functions that reach an abnormal end, or have to exit are required to panic out.
Ex. intentional return
	panic(wasi.ExitCode(exitCode))

Ex. abend (ex on I/O)
		n, err := writer.Write(b)
		if err != nil {
			panic(err)
		}

This is an alternative to allowing signatures that return an error, then propagating out anyway. The reasons this isn't done yet are:

Slight confusion about error because Wasm doesn't define them. We'd have to document the behaviour.
Panic is easier internally as it is already used for global exits (exit from any recursive or reentrant calls)
Less internal code (possibly more efficient to panic vs otherwise)

I believe this is confusing from a developer point-of-view, and can result in unnecessary error wrapping. An alternative may be to retain using panics internally for global exit, but use a different call site for functions with an error signature. These functions could internally panic on error to retain the same behavior.

This is important for porting some existing gasm code, which return a second value which is an error. We need a clean path to migrate folks and saying "panic" looks like a step backwards.

actually I looked closer at the code and it was returning an errno (uint32) cast as an error.  Let's start with #433 and also documenting what panics are used for now.
We have to analyze https://github.com/WebAssembly/exception-handling before proceeding with any typed errors I think

hi @clarkmcc WebAssembly doesn't have a way in 1.0 or 2.0 to catch exceptions, though it may be the case in the future.
So, the way errors work are somewhat old school meanwhile. The first return val can be an errno for a recoverable function. This is how WASI works, for example. Please reply if you need more guidance!

I think what you'll want to look at are..

allocation (for the string and how to pass it, etc) https://github.com/tetratelabs/wazero/tree/main/examples/allocation/rust
multiple values (how to return multiple things) https://github.com/tetratelabs/wazero/tree/main/examples/multiple-results

hope these breadcrumbs help!

I don't think rust supports multiple values, so your signature might look like this. Note you probably don't need to declare a i64 for the errorno a smaller i32 is likely fine
pub type Size = usize;
pub type Errno = u16;

#[link(wasm_import_module = "your_module")]
extern "C" {
    fn get_value(ptr: *mut u8, len: Size) -> Errno;
}

ported from wasi
https://github.com/bolucat/Firefox/blob/f9a6a21c8748b6d79a238c0285d9d24aad991767/third_party/rust/wasi/src/lib_generated.rs

@codefromthecrypt let me clarify, in the get_value function, the guest will call the host and pass in a pointer and a length to the input parameters, and the host function needs to pass a pointer and a length back to the guest which will contain the result. I'm able to do the first half, I'm not sure how to pass a pointer and length back to the guest if my return value is reserved for an error.

In the long term, I'd like to switch to flatbuffers instead of serialized JSON strings which is what I'm doing now so that I can get by bearings first. Given that, I'm guessing the null-terminated string approach is not an option.
Can you clarify what your second option would look like, I'm not sure that I follow completely. Last night I took a stab at this type of process

Host function signature looks like func(ptr uint32, len uint32, resultPtr uint32, resultLenPtr uint32) Errno
Guest calls host function and sets the value at resultPtr and resultLenPtr to 0, then passes a pointer to their memory locations to the host function.
Host function does it's work, allocates sufficient memory for the result, and then copies the data.
Host function then sets the value at the resultPtr address to the memory offset of the previously allocated result and sets the value at the resultLenPtr to the length of the result.
Guest function reads the updated values at resultPtr and resultLenPtr.

It almost worked but there was some slight data corruption and then out-of-bounds errors when the strings were really long so I'm sure I did something wrong. Then I realized this seems like quite a bit of work for what I think is a pretty common use case (arbitrary input bytes and arbitrary output bytes). Am I overthinking this?


Governance. Multisig. Revoke delegation. Wrong details.

Wrong details, should be shown delegator address
Expected Behavior

https://www.figma.com/design/4vjREBpvZK7M3m1GaoVptq/OpenGov-delegations?node-id=80-67675&t=XrhHhPmXFwuqDKgl-4
Actual Behavior

Environment
https://github.com/novasamatech/nova-spektr/commit/450f3a50ea0040c9704936b87d88ae6bb9bf7c74

Status verification: ✅


Gitea version (or commit ref): 1.5.0
Git version: git version 2.17.1
Operating system: ubuntu
Database :

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
If you create a fork of a project and decide to create a PR that you want to merge into your own fork, then your only choice is to edit the URL by hand because by default you will be redirected to the "main" project.
I expected to be able to create a pull request into my own project.

I think there is already issue for this

Oh I found it, I was probably to tired yesterday night :-) https://github.com/go-gitea/gitea/issues/4566