capstone: 4.0.2 -> 5.0.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/aquynh/capstone/releases.
meta.description for capstone is: Advanced disassembly library
meta.homepage for capstone is: http://www.capstone-engine.org
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 5.0.1 with grep in /nix/store/qr3rnlri5yzyz1k5r5z3i2qjfx60gaqg-capstone-5.0.1
found 5.0.1 in filename of file in /nix/store/qr3rnlri5yzyz1k5r5z3i2qjfx60gaqg-capstone-5.0.1

Rebuild report (if merged into master) (click to expand)

139 total rebuild path(s)

139 package rebuild(s)

First fifty rebuilds by attrpath
adenum
alpine-make-vm-image
boomerang
capstone
cloud-init
cloud-utils
colima
cot
cutter
cutterPlugins.jsdec
cutterPlugins.rz-ghidra
diffoscope
edb
edl
gef
gnome.gnome-boxes
guestfs-tools
iaito
imhex
libguestfs
lima
lima-bin
linuxKernel.packages.hardkernel_4_14.virtualbox
linuxKernel.packages.linux_4_14.virtualbox
linuxKernel.packages.linux_4_14_hardened.virtualbox
linuxKernel.packages.linux_4_19.virtualbox
linuxKernel.packages.linux_4_19_hardened.virtualbox
linuxKernel.packages.linux_5_10.virtualbox
linuxKernel.packages.linux_5_10_hardened.virtualbox
linuxKernel.packages.linux_5_15.virtualbox
linuxKernel.packages.linux_5_15_hardened.virtualbox
linuxKernel.packages.linux_5_4.virtualbox
linuxKernel.packages.linux_5_4_hardened.virtualbox
linuxKernel.packages.linux_6_1.virtualbox
linuxKernel.packages.linux_6_1_hardened.virtualbox
linuxKernel.packages.linux_6_4.virtualbox
linuxKernel.packages.linux_6_4_hardened.virtualbox
linuxKernel.packages.linux_6_5.virtualbox
linuxKernel.packages.linux_hardened.virtualbox
linuxKernel.packages.linux_latest_libre.virtualbox
linuxKernel.packages.linux_libre.virtualbox
linuxKernel.packages.linux_lqx.virtualbox
linuxKernel.packages.linux_testing_bcachefs.virtualbox
linuxKernel.packages.linux_xanmod.virtualbox
linuxKernel.packages.linux_xanmod_latest.virtualbox
linuxKernel.packages.linux_xanmod_stable.virtualbox
linuxKernel.packages.linux_zen.virtualbox
linuxPackages-libre.virtualbox
linuxPackages.virtualbox
linuxPackages_4_14_hardened.virtualbox

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/qr3rnlri5yzyz1k5r5z3i2qjfx60gaqg-capstone-5.0.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A capstone https://github.com/r-ryantm/nixpkgs/archive/194dfc268861a55c974d3896eb6055f0ee708ef4.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/qr3rnlri5yzyz1k5r5z3i2qjfx60gaqg-capstone-5.0.1
ls -la /nix/store/qr3rnlri5yzyz1k5r5z3i2qjfx60gaqg-capstone-5.0.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 45m and timed out

Maintainer pings
cc @thoughtpolice @risicle for testing.

Result of running nixpkgs-review:
14 packages marked as broken and skipped:
linuxKernel.packages.hardkernel_4_14.virtualbox linuxPackages_hardkernel_latest.virtualbox qemu_xen qemu_xen-light qemu_xen-light.debug qemu_xen-light.ga qemu_xen.debug qemu_xen.ga qemu_xen_4_15 qemu_xen_4_15-light qemu_xen_4_15-light.debug qemu_xen_4_15-light.ga qemu_xen_4_15.debug qemu_xen_4_15.ga

127 packages failed to build:
adenum colima cot cot.dist diffoscope diffoscope.dist diffoscope.man edb edl edl.dist gef guestfs-tools libguestfs lima lima-bin linuxKernel.packages.linux_4_14.virtualbox linuxPackages_4_14_hardened.virtualbox linuxKernel.packages.linux_4_19.virtualbox linuxPackages_4_19_hardened.virtualbox linuxKernel.packages.linux_5_10.virtualbox linuxPackages_5_10_hardened.virtualbox linuxKernel.packages.linux_5_15.virtualbox linuxPackages_5_15_hardened.virtualbox linuxKernel.packages.linux_5_4.virtualbox linuxPackages_5_4_hardened.virtualbox linuxPackages.virtualbox linuxPackages_hardened.virtualbox linuxKernel.packages.linux_6_4.virtualbox linuxPackages_6_4_hardened.virtualbox linuxPackages_latest.virtualbox linuxPackages_latest-libre.virtualbox linuxPackages-libre.virtualbox linuxPackages_lqx.virtualbox linuxPackages_testing_bcachefs.virtualbox linuxPackages_xanmod.virtualbox linuxPackages_xanmod_latest.virtualbox linuxPackages_zen.virtualbox multipass open-watcom-bin open-watcom-bin-unwrapped out-of-tree pwndbg pwntools pwntools.dist pynitrokey pynitrokey.dist pyocd pyocd.dist python310Packages.angr python310Packages.angr.dist python310Packages.angrcli python310Packages.angrcli.dist python310Packages.angrop python310Packages.angrop.dist python310Packages.capstone python310Packages.capstone.dist python310Packages.guestfs python310Packages.guestfs.dist python310Packages.karton-autoit-ripper python310Packages.karton-autoit-ripper.dist python310Packages.karton-config-extractor python310Packages.karton-config-extractor.dist python310Packages.malduck python310Packages.malduck.dist python310Packages.qiling python310Packages.qiling.dist ropgadget ropgadget.dist python310Packages.ropper python310Packages.ropper.dist python310Packages.spsdk python310Packages.spsdk.dist python310Packages.telfhash python310Packages.telfhash.dist python311Packages.angr python311Packages.angr.dist python311Packages.angrcli python311Packages.angrcli.dist python311Packages.angrop python311Packages.angrop.dist python311Packages.capstone python311Packages.capstone.dist python311Packages.cot python311Packages.cot.dist python311Packages.guestfs python311Packages.guestfs.dist python311Packages.karton-autoit-ripper python311Packages.karton-autoit-ripper.dist python311Packages.karton-config-extractor python311Packages.karton-config-extractor.dist python311Packages.malduck python311Packages.malduck.dist python311Packages.pwntools python311Packages.pwntools.dist python311Packages.pyocd python311Packages.pyocd.dist python311Packages.qiling python311Packages.qiling.dist python311Packages.ropgadget python311Packages.ropgadget.dist python311Packages.ropper python311Packages.ropper.dist python311Packages.spsdk python311Packages.spsdk.dist python311Packages.telfhash python311Packages.telfhash.dist qemu qemu.debug qemu.ga qemu_full qemu_full.debug qemu_full.ga qtemu quickemu solo5 solo5.debug vagrant virtualbox virtualbox.modsrc virtualboxHardened virtualboxHardened.modsrc virtualboxHeadless virtualboxHeadless.modsrc virtualboxWithExtpack virtualboxWithExtpack.modsrc volatility3 volatility3.dist

35 packages built:
alpine-make-vm-image boomerang capstone cloud-init cloud-init.dist cloud-utils cloud-utils.guest cutter rizinPlugins.jsdec cutterPlugins.rz-ghidra gnome.gnome-boxes iaito imhex lxd python310Packages.r2pipe python310Packages.r2pipe.dist python311Packages.r2pipe python311Packages.r2pipe.dist qemu-utils qemu_kvm qemu_kvm.debug qemu_kvm.ga qemu_test qemu_test.debug qemu_test.ga radare2 rehex rizin rizinPlugins.rz-ghidra tests.testers.nixosTest-example tests.testers.runNixOSTest-example tests.trivial-builders.references tracy wcc zpool-auto-expand-partitions

The new cmake-based build doesn't like building both static and shared libs at the same time (fair enough I guess), but the default appeared to change to not building the shared lib over this release.
So have made choice of building shared lib mostly obey stdenv.hostPlatform.isStatic (while being overridable), and stopped the python package insisting on finding the static lib.

Looks like this has to wait for qemu 8.1.0 (#251154)
https://gitlab.com/qemu-project/qemu/-/issues/1774

cc @alyssais as qemu maintainer and @zhaofengli with interests in static qemu in case I'm screwing anything up.

nixpkgs-review reveals no new failures for me, macos 10.15 & nixos x86_64. pkgsStatic, pkgsMusl, pkgsCross.aarch64-multiplatform, pkgsi686Linux, pkgsLLVM variants all build. cstool binary works.

The only new failure is in edb which is a direct user
/build/source/src/capstone-edb/Instruction.cpp:882:14: error: 'X86_INS_VCVTPD2DQX' was not declared in this scope; did you mean 'X86_INS_VCVTPD2DQ'?
  882 |         case X86_INS_VCVTPD2DQX: // FIXME: what's this?
      |              ^~~~~~~~~~~~~~~~~~
      |              X86_INS_VCVTPD2DQ
/build/source/src/capstone-edb/Instruction.cpp:883:14: error: 'X86_INS_VCVTPD2PSX' was not declared in this scope; did you mean 'X86_INS_VCVTPD2PS'?
  883 |         case X86_INS_VCVTPD2PSX: // FIXME: what's this?
      |              ^~~~~~~~~~~~~~~~~~
      |              X86_INS_VCVTPD2PS
[ 28%] Building CXX object src/CMakeFiles/edb.dir/graph/GraphWidget.cpp.o

@Artturin I have another PR https://github.com/NixOS/nixpkgs/pull/245527 which pins old capstone and edb works there.
Can we merge mine before this one?

Closing in favor of #245527


[Bug]: No SSL cert for non-www domain for Docker Compose stack

Is there an existing issue for this?

[X] I have searched the existing issues

Example public repository
coolify
Description
When using docker compose stack and having domain set with a www subdomain
ex.:
www.domain.com
When entering https://domain.com, before the redirect can trigger, I receive an SSL error
NET::ERR_CERT_AUTHORITY_INVALID
certificate is
Subject: TRAEFIK DEFAULT CERT
Issuer: TRAEFIK DEFAULT CERT
looks like non-www cert is not generated, but there is no option to enable it for docker compose stack.
Steps To Reproduce

create app with docker compose stack
setup domain with www subdomain
deploy
enter non-www url
grind your teeth ;-)

Version
3.12.17 (also previously on 3.12.2)

I also get the TRAEFIK DEFAULT CERT when publishing a new project, old projects are working and the certificate is also on the traefik instance in "/etc/traefik/acme/acme.json" but there is no new cert for the new site.

My Problem today was that there was a CAA Entry on DNS.
If there is a CAA Entry on the DNS than you also have to set the one for Letsencrypt.org also.
Otherwise you won't get a SSL Certificate from LetsEncrypt. https://letsencrypt.org/docs/caa/
CAA 0 issue „letsencrypt.org"

I'm closing this issue, because tracking features will be moved to GitHub discussions. Github issues will be only for bugs.
Version 4 is in full focus. v3 related issues will be closed, if it is not a critical bug.
Thanks for your understanding.


[FLINK-19002][canal][json] Support to only read changelogs of specific database and table for canal-json format

What is the purpose of the change
Usually, users use Canal to synchronize binlog data from various MySQL databases and tables into a single Kafka topic. However, currently, canal-json can't support this case, because it requires the canal data in the topic should be in the same data format.
This issue propose to introduce a new option "canal-json.database" and "canal-json.table" to filter out the specific data.
Brief change log

Added canal-json.database and canal-json.table option to CanalJsonFormatFactory.
Drop records if they don't match the specific database and table in CanalJsonDeserializationSchema.

Verifying this change

Added a test data which captures changes from 2 tables, and deserialize it using canal-json with specific database and table.
Added tests for factory to verify new introduced options.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

cc @leonardBang

Hi @leonardBang , I have updated the 'canal-json.database', 'canal-json.table' to 'canal-json.database.include' and 'canal-json.table.include'. Could you have a look again?

'canal-json.database.include' and 'canal-json.table.include' make sense to me,
LGTM

Thanks @leonardBang  for the reviewing. Will merge this.


Download zip is corrupt

I am unable to open the zip file after download. Says the file is corrupt.

The zip file is generated via github. I have no control over that. I suggest you update your decompression software. Also check for virus checking software that might be tampering with the file. Also check your computer for viruses. Try downloading the zip and expanding it on another computer.
Are you on Mac or Windows?

Skrymir01 if you are using Windows, I had same issue. Try to unzip it with Winrar. Default windows decompression feature or 7-zip wasn't also working for me.

Solution = use Winrar or similar.
@jakubpobiecky thanks.

Thanks that worked.


[Typescript Plugin] - Spread operator not handled

I have a function in typescript that returns a promise. The spread operator is used to merge properties of two objects. ESDoc fails on that line and runs smoothly when I cut it.
return new Promise((resolve, reject) => {
    this.service.findByUserId(userId, relationsUser)
    .then(async (user: User) => {
        if (!user) throw new NotFoundException('User does not exist');
        const authUser = await this.service.getAuth0UserProfile(user.userId);
        resolve({ ...authUser, ...user}); <-- Does not work
    })
    .catch(reason => reject(reason));
});

Any idea how to solve this? Thanks!

I have the same problem :/ any ideas?

I solved it by using Object.assign().

@ziunio workaround didn't work for me. In my case, I have functions with spread parameters with Types that esdoc is resulting in "undefined". This function:
thing (...thingConstructors: ThingConstructor<Thing>[]): number[] {

generates this documentation:
public thing(thingConstructors: undefined): *

Whether I use that plugin or not.


Soundness of read_ref_unchecked

read_ref_unchecked will create a reference into a memory buffer, changing the representation from &[u8] to &T.
The number of bytes used for this &[u8] is T::RAW_BYTE_LEN which is defined to be the number of bytes required to represent the type in a font file, which may be smaller than the size of the native type when the native type has tail padding (for alignment purposes).
There are 2 possible problematic outcomes:
Overlapping refs
Two consecutive T elements in the buffer may overlap in memory. Let's say T has size_of equal to 2, but T::RAW_BYTE_LEN is 1.
| T1 | T2 | T3 | ... |

read_ref_unchecked(0) will return &T that points to | T1 | T2 |.
read_ref_unchecked(1) will return &T that points to | T2 | T3 |.

If we were to *read_ref_unchecked(0) = another_t, we'd expect size_of<T> bytes to be memcpy'd which would clobber T2.
This is happily mitigated by the fact that there is no mutable reference version of this function. I think we should document why there is no mutable reference version somewhere in the code (rustdocs) so that one does not appear in the future.
Invalid refs
The last T element in the buffer actually goes off the end of the buffer. Again, let's say T has size_of equal to 2, but T::RAW_BYTE_LEN is 1.
| T1 | T2 | ... | T9 |

A call to read_ref_unchecked(8) will return &T that points to | T9 | invalid memory |. If that &T is moved (which it can't be, see Overlapping refs) or copied, we'd see two bytes of memory copied, which would involve a read out of bounds, which is a memory safety bug.
I think this could be mitigated by requiring T to not be Copy, or by requiring size_of<T>() - T::RAW_BYTE_LEN bytes of padding to exist at the back of the buffer?

Analysis much appreciated. QQ, what was overlapping refs meant to link to? - currently it takes me back here.

wonderful, happy to have someone more comfortable than I am with the soundness rules looking at this stuff.
For the overlapping refs issue: I think the problem here is that I am overloading the FixedSize trait; it is both communicating the size required to encode a given type, but I'm also using it here as a kind of marker trait. In practice it is only used with types that are #[repr(packed)] and contain only fields that are BigEndian<T>, which is essentially a type annotation on top of a fixed-size byte array.
For this set of types, sizeof:: and T::RAW_BYTE_LEN are always equal.
So in summary, my understanding is really that if I can guarantee that sizeof:: and T::RAW_BYTE_LEN are equal for all input types, then we should be okay?

This is a great catch. I think we’re safe here by convention but it would be nice to use the type system instead. Can we just get rid of RAW_BYTE_LEN and use size_of instead? The Uint24 type is the one case I’m aware of with a discrepancy but we can just change the payload to [u8; 3]. Are there others?

QQ, what was overlapping refs meant to link to?

Ah, meant to link the first header on this issue :) My bad, forgot to test it.

@danakj I've tightened up enforcement of our invariants, and I believe your concerns here should be addressed.
tldr:

The unsafe methods for casting refs/slices now require the target type to implement a new unsafe trait, FromBytes.
This trait is only implemented for u8, for types that are #[repr(transparent)] wrappers around [u8; N], and for structs where all fields are composed of those types, and which are also marked #[repr(packed)].
aside from the two base cases, this trait is only implemented in generated code
the safe versions of these methods (which are the only ones we currently use) contain a bunch of assert!s to double-check that the type is conforming.

I believe that our constraints are strictly narrower than are required (for instance, we could allow padding) however the reality of the data we are working with is that it is always packed, so it seems reasonable to just enforce that.
Some further thoughts:

we are not doing anything in code generation to ensure that (for instance) all of a struct's fields impl FromBytes. Given that codegen is private (there isn't a proc macro that some random consumer can use) I am comfortable with this approach, but if it would make folks more comfortable I would be happy to have codegen produce something in the trait impl that will fail to compile if the child types are are non-conforming.

In any case ptal when you have a free moment, and let me know if you've any questions or concerns.
Thanks again for this, very reassuring to have another pair of eyes on this stuff.

The FromBytes trait says it should only be used from generated code, which I believe is also all inside the same crate, is that right?
If so, you can actually prevent anything else from implementing it - which also lets you make changes to it without requiring a major version bump.
https://rust-lang.github.io/api-guidelines/future-proofing.html

The FromBytes trait says it should only be used from generated code, which I believe is also all inside the same crate, is that right?
If so, you can actually prevent anything else from implementing it - which also lets you make changes to it without requiring a major version bump.
https://rust-lang.github.io/api-guidelines/future-proofing.html

The issue here, as I understand it, is that we would need to implement the sealed trait for each of the generated types, but the generated types are declared in various different modules which are not the module where the trait is declared.
Maybe I'm just taking the examples too literally, though, and we could do something like,
// in crate::read::FromBytes
trait FromBytes: sealed::Sealed {}
pub(crate) mod sealed {
    pub trait Sealed {}
}

// in generated code
/// SAFETY: see the [`FromBytes`] trait documentation.
impl crate::read::sealed::Sealed for MyGeneratedType {}
unsafe impl FromBytes for MyGeneratedType {}

Does that make sense? If so I'll get a CL together.

Why is impl FromBytes for BigEndian<T> not conditional on T: FromBytes ?

Because T doesn't need to be FromBytes; BigEndian<T> does not store T. Instead it is a transparent wrapper around [u8; N], where T is essentially a marker.
This is enforced in a slightly roundabout way:

BigEndian<T> has the bound T: Scalar.
Scalar has an associated type Raw: BeByteArray.
BeByteArray is a sealed trait that is only implemented for [u8; N].
BigEndian is declared like, #[repr(transparent)]
 pub struct BigEndian<T: Scalar>(pub(crate) T::Raw);

Essentially BigEndian<T> is a way of saying "I am raw bytes, and I can be converted to and from T". The rationale for this design was largely ergonomics: it lets us use normal native scalars in most places, instead of needing to be generic over byte order.
Another property of this implementation is that we don't need T to be FromBytes itself. For instance we have a UInt24 type that is internally a u32, but the BigEndian<UInt32> is a 3-byte array; we just ignore the extra byte when reading/writing.

Does that make sense? If so I'll get a CL together.

Yeah, that sealed code makes sense to me. That way nothing outside the crate gets to implement it, which is the intent. I think the doc example could include a pub(crate) to make that more clear.
Thanks for the BigEndian explanation, that makes sense.

https://github.com/googlefonts/fontations/blob/368ca473c5868a0d527038bf1b96abda708dc741/read-fonts/src/font_data.rs#L120
Could you add a comment here explaining why this is able to check for internal padding? I believe it because of codegen reasons and the addition of type sizes recursively but it's not obvious from here.

https://github.com/googlefonts/fontations/blob/368ca473c5868a0d527038bf1b96abda708dc741/read-fonts/src/font_data.rs#L159
This could use the same

I believe the soundness holes have been plugged from safe code, thank you!

read_array_unchecked is never actually used in this codebase, presumably it's important to some future code?

Does that make sense? If so I'll get a CL together.

Yeah, that sealed code makes sense to me. That way nothing outside the crate gets to implement it, which is the intent. I think the doc example could include a pub(crate) to make that more clear.

sounds good, will put a patch together.

https://github.com/googlefonts/fontations/blob/368ca473c5868a0d527038bf1b96abda708dc741/read-fonts/src/font_data.rs#L120
Could you add a comment here explaining why this is able to check for internal padding? I believe it because of codegen reasons and the addition of type sizes recursively but it's not obvious from here.

Your reasoning is correct, but I will add a comment.

read_array_unchecked is never actually used in this codebase, presumably it's important to some future code?

Correct, I believe none of our unsafe fns are currently called directly; they are only called from inside the safe versions.
Whether this changes is ultimately a matter of profiling. The design of this crate is such that for all of these raw-bytes types, we do a single validation pass when we first read them; if this pass succeeds, we know that any subsequent member access is in bounds, which means we should soundly be able to use the unsafe versions of these methods, if we wish. In practice we haven't bothered playing with this yet, since we have not gotten to the point where we are trying to squeeze out small performance gains, but I can definitely imagine a case where we might (for instance if we end up using this code as the foundation for a new shaping engine.)
In the meantime, though, I think we can at least mark the unsafe fns as not-pub, which should avoid any confusion.

Honestly leaving them pub is fine, I wanted to make sure I was not missing review of any unsafe code (the callers of those). They will be visible when they exist thanks to the unsafe block required.


Media queries not working properly

The css variables associated to media queries are defined as --phone and --tablet. In fact, CSS media queries cannot get these two variables.
I replaced these variables with scss variables:
:root {
  /* COLOR VARIABLES */
  ...
}

/* MEDIA QUERIES */
$phone: 684px;
$tablet: 900px;

And replaced all related styles like this:
  @media (max-width: $phone) {
    font-size: 1rem;
  }

Then the styles work fine on my mobile phone.

Hello. Thank you that you noticed.
This is a sad limitation of the native variables despite the fact that we have an active proposal to solve this issue https://drafts.csswg.org/css-env-1/
I'll do a small rollback to scss vars only for media queries


Doesn't work while holding items in off hand

While you're holding an item in your off-hand (for example torches) the construction wand refuses to work.

If you are holding blocks on your off-hand, then wand tries to place those instead of the block you are looking at. This is a feature that allows you to for example build trims in a different material.


ListThriftCodec uses wrong codec during converting generics structure

Object (constructor quit difficult, but it's just a conversion between two types of objects):
@ThriftStruct
@NoArgsConstructor
public final class PagedList<T> implements Serializable {

    private int totalPages;

    private List<T> content;

    public <P, R extends T> PagedList(Page<P> page, Function<P, T> mapper) {
        this.totalPages = page.getTotalPages();
        this.content = page.getContent().stream().map(item -> mapper.apply(item)).collect(Collectors.toList());
    }

    @ThriftField(1)
    public int getTotalPages() {
        return totalPages;
    }

    @ThriftField
    public void setTotalPages(int totalPages) {
        this.totalPages = totalPages;
    }

    @ThriftField(2)
    public List<T> getContent() {
        return content;
    }

    @ThriftField
    public void setContent(List<T> content) {
        this.content = content;
    }
}

Client call:
try (BusinessThriftService businessService = clientManager.createClient(connector, BusinessThriftService.class).get()) {
			return businessService.findByName(name, page.getPageNumber(), page.getPageSize());
		} catch (Exception e) {
			throw new ThriftException(e.getMessage(), e);
		}

where businessService.findByName looks like that :
public PagedList<Business> findByName(String name, int page, int size) throws DataAccessException {
		try {
			PagedList<Business> t = new PagedList<>(businessRepository.findByName(name, new PageRequest(page, size)), item -> businessDtoMapper.dtoOf(item));
			return t;
		} catch (Exception e) {
			throw new DataAccessException(e.getMessage());
		}
	}

Once I run it, I receive java.lang.ClassCastException since somehow inside swift the ListThriftCodec's codec is wrong type (of other thrift structure).
Are there any special tips for generics?

@vicmosin
I've come across this type of problem before.  It was a joy to debug.
Summary of what might be happening -
Swift uses some google library to glean type parameter information for generics at runtime beyond what reflection usually allows, iirc it does this by doing things like parsing the actual bytes of the loaded class to get the extra information available if you compiled with the debug option (which is quite common I suppose).
If it is available, the toString() of the type info ends up being something like List<Foo>
If it is not available the toString() is something like List<?>
When the ConcurrentCachingLoader (or whatever the data structure is called that stores the ThriftCodec instances for each type) comes across the List<?> type the first time it gets cached, keyed off of the ThriftType.  If you have another List structure in your program that also has this sort of type erasure with a different type parameter, it will also be resolved as a List<?> resulting in a cache hit, even though the type parameter is actually different.
Its possible that since the lambda in your constructor results in an invokedynamic call site that is resolved at runtime, the google library can't ascertain what the original generic type parameter was.  Or there could be erasure for some other reason... I'm not really familiar with the specific quirks of that library.
The fix that I used for this is to add an extra type check in equals() and hashCode() for ThriftType class for SET, LIST, and MAP structures.  I have an open pull request that includes it (https://github.com/facebook/swift/pull/257), you may want to try to apply this commit and build from source to see if it solves the problem:
https://github.com/bgould/swift/commit/ce9675bd372db3b6ffbc073e9237d5fec2071998
I'd be interested to know if this get things working for you.

@bgould
Hi, thanks a lot for your response. I tried your change at ThriftType and still have the same issue. I believe that the main reason why your change didn't fix it because of my object's structure - the generic field content is  field and the whole class is a container which is not implements Iterable. So your additional check inside shouldHaveValueType just skipped.
Still waiting for some response from dev team)

So it seems that thrift has issues with reflection...
The following construction solves the problem:
@ThriftStruct
@NoArgsConstructor
public class PagedList<T> implements Serializable {

    private int totalPages;

    public PagedList(Page page) {
        this.totalPages = page.getTotalPages();
    }

    @ThriftField(1)
    public int getTotalPages() {
        return totalPages;
    }

    @ThriftField
    public void setTotalPages(int totalPages) {
        this.totalPages = totalPages;
    }
}
@ThriftStruct
@NoArgsConstructor
public final class UserPagedList extends PagedList<User> {

    private List<User> content;

    public UserPagedList(Page page, List<User> content) {
        this.totalPages = page.getTotalPages();
        this.content = content;
    }
}

Not so elegant since you have to declare such class per each of your models, but at least works

Now, I met the same problem, see also can only use this kind of not elegant method


//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest*sim_verilator tests failing during setup

//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_bad_identifier_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_bad_identifier_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_code_end_unaligned_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_code_end_unaligned_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_code_in_manifest_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_code_in_manifest_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_code_outside_image_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_code_outside_image_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_code_start_unaligned_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_code_start_unaligned_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_empty_code_a_sim_verilator FAILED in 60.1s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_empty_code_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_entry_at_code_end_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_entry_at_code_end_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_entry_before_code_start_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_entry_before_code_start_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_entry_unaligned_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_entry_unaligned_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_too_large_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_too_large_b_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_too_small_a_sim_verilator FAILED in 60.2s
//sw/device/silicon_creator/rom/e2e:boot_policy_bad_manifest_too_small_b_sim_verilator FAILED in 60.2s

For now I'll remove verilator for the list of targets for these tests because we don't support it yet.

Moving to M3, since this failure only affects Verilator

Is this still relevant?
@cfrantz @timothytrippel


Material You Warning

When I updated to flutter 3 , and started to use material you in my app , I got that warning from the framework so please update it as fast as possible , It's very important to me
/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/responsive_framework-0.1.7/lib/responsive_wrapper.dart:623:20: Warning: Operand of null-aware operation '!' has type 'WidgetsBinding' which excludes null.

Done it but seems to have same issues
[        ]  - 'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('../../../flutter/packages/flutter/lib/src/widgets/binding.dart').
[        ] Try calling using ?. instead.
[        ]     WidgetsBinding.instance.addPostFrameCallback((_) ...```

I upgraded Flutter 3.0 and thought that issue because of latest Flutter version, So I downgraded Flutter version 2.10.5 but same issue facing! 😞

I took the decision to not to migrate to Flutter 3, and removed caret(^) from pubspec.yaml,
change to: flutter_segment: 3.7.0
Hopefully will be migrating soon😅

The warning does not prevent your app from compiling.
Look at the very bottom of the unable to build stack trace for the real incompatibility.
If you are using v0.1.8 of ResponsiveFramework, you should not see this warning.

@searchy2 True, In my case it was 'getX'🥲

Facing same issue with 0.1.8 as well.
Error: Method 'addObserver' cannot be called on 'WidgetsBinding?' because it is potentially null.

Can you screenshot the error?

@searchy2 Sure pls look this screenshot.

Fixed with correct compatibility versions.


Cubic interp

This is supposed to include the cubic table interp, used for sine and impulse -> PWM.

Apparently also includes the soft clip changes.

There's a bug where the square wave glitches - forgets its phase every second or so.  Am investigating.

"Bug" was just overruns, I think.  It's much harder to control the peak amplitudes of the band limited waveforms, spent a while trying to fix this.  It causes problems when using them as LFO, where the absolute value is very significant.  I think it's close to correct.  TRIANGLE supports DUTY modulation.
I think there's a problem where the band limited oscillators take a few cycles (~10) to stabilize their average levels -- basically, the state variable(s) of the integration LPFs has to settle; I start them at zero because I haven't figured out what the target value should be, although probably I could.  This doesn't matter much for audio oscillators (I think), but with very slow LFOs, this can generate an audible change (since they can take ~seconds to settle).

Could we "prime" the BLOs a bit outside of audio-rate? Like, just run the render() call for a few cycles every time frequency is changed?

That could work. But it's shameful not to be able to predict the correct initial value for the state.  I plan to do some experiments with a Python simulation.
Also, it's crazy wasteful to run the LFOs at audio-rate (given, I think, we only sample them once per block).  Maybe we should parameterize the oscillators by the sampling rate?  Would make the code look cleaner anyway.


onchain receive improvment

1/
for lightning and onchain, invoice/address is in the top line
for paycode, lightning address is at the bottom line:
--> have all of them in the same place, I would suggestion bottom line (and maybe the single use could be switch to the top instead, altought I'm not sure of their usefulness, I would only keep the date)
2/  onchain address should be shown in full (instead of abc...def)
3/ copying onchain or lightning address show "invoice has been succesfully copied to clipboard"

Can you explain the last point?

Can you explain the last point?

the toast that is been shown when copying the invoice. it always says invoice, even when it's not an invoice

another thing we apparently have missed: paycode/lightning address currently only work with the bitcoin wallet.


Add this module to AssetLib

Can you put this module in AssetLib? This way it will be easier for new developers to use the module to export their games.

This kind of module was not meant to be distributed on assetlib, even the distribuition of the pre compiled versions has its use very limited.
Think in a very common scenario where you need Admob, share image and a Google Play Services modules. The pre compiled version will not help, as the user will need to recompile your custom template with all these modules inside.

Unfortunately it can't be done.


How to  disappears instantly narTab when user taps on TextInput box

Version
Tell us which versions you are using:

react-native-router-flux v4.?.? (v3 is not supported)
react-native v0.?.?

Expected behaviour
Actual behaviour
Steps to reproduce
For non-obvious bugs, please fork this component, modify Example project to reproduce your issue and include link here.
1.
2.
3.

Please try to reproduce it with Example project and latest version 4.0.0-beta.40. Feel free to open if the issue still exists


DataMapper.query yields 'ValidationException: Query condition missed key schema element' exception

I'm trying to query a Global Secondary Index, but I'm unable to get beyond this exception.
The GSI is based on a post's scheduled end date in the form of YYYY-MM-DD.
When I try to build the query like so:
function getQueryPaginator( dataMapper: DataMapper, startKey: { [ key: string ]: any } ): QueryPaginator<Load> {
  const today: Date = new Date();
  const partitionKey: string = `${today.getFullYear()}-${today.getMonth() + 1}-${today.getDate()}`;

  const queryOptions: QueryOptions = {
    indexName: 'PostingExpiryIndex',
    limit: 25
  };

  return dataMapper.query(
    Load,
    {
      partitionKey: partitionKey
    },
    queryOptions
  ).pages();
}

And use it:
const paginator: QueryPaginator<Load> = getQueryPaginator( dataMapper, lastEvaluatedKey );

    for await ( const page of paginator ) {
      try {
        const loadsBatch: Array<Load> = [];
        page.forEach( ( load: LoadInterface ) => {
          // do some logic...
          loadsBatch.push( Object.assign( new Load(), load ) );
        } );
        dataMapper.batchPut( loadsBatch );
      } catch ( e ) {
        log.error( `Error occurred while processing expired loads: ${e}` );
        await handleError( e );
      }
    }

I get the following exception:

ValidationException: Query condition missed key schema element
at Request.extractError (/Users/myworkspace/node_modules/aws-sdk/lib/protocol/json.js:48:27)

I am however able to query and fetch values using the AWS Document client's equivalent API:
var params = {
    TableName: 'loads',
    IndexName: 'PostingExpiryIndex', // optional (if querying an index)
    KeyConditionExpression: 'postingEndDate = :value', // a string representing a constraint on the attribute
    ExpressionAttributeValues: { // a map of substitutions for all attribute values
      ':value': '2018-10-26'
    }
};
docClient.query(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response
});

In the first example, is partitionKey being used as the property name? In the third example, postingEndDate is used instead.

partitionKey is being used as the value of the partitionKey for the index that I'm querying by.
Isn't that the requirement according to the docs? --
import {between} from '@aws/dynamodb-expressions';

  const keyCondition = {
      partitionKey: 'foo',
      rangeKey: between(10, 99),
  };

The key condition must target a single value for the partition key.

I guess my assumption was that by including the indexName in the query options, that the library would use that to infer the indexed property name based on the annotations in the class schema.

The property names in keyCondition should be the properties used to issue a query. Given a class like the following:
@table("my-table")
class MyClass {
    @autoGeneratedHashKey()
    foo: string;
}

The key condition would be {foo: < key value sought >}.

I see, thank you for the clarification. Updating thekeyCondition to use the GSI class property instead of the fixed 'partitionKey' property name fixed it.
Just a thought, but it might be helpful to include the class snippet you have above with the query documentation for additional context. Anyway, thanks again!


DataGridCellStyle problem in MultiDataTriggers at Condition:SelectionUnit

The exact error i get in output window is:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=SelectionUnit; DataItem=null; target element is 'DataGridCell' (Name=''); target property is 'NoTarget' (type 'Object')
I think that is not really related to HandyControl, but i thought i will report it. Maybe you could do some "Defensive Programming"
I found that is coming from DataGridCellStyle => <Style.Triggers> => MultiDataTrigger.
The problem is shown when i delete some rows from the datagrid.
 For almost every Cell in Datagrid that is deleted.
It looks like the the DataGridRows are detached from the DataGrid, but are still "alive" in memory for some time. So the Binding in Triger fails and throws this errors because there is no FindAncestor,AncestorType=DataGrid in the MultiDataTriggers (4 of them).
Here is what i did, without success to remove the errors:

I have disabled virtualization by:  VirtualizingPanel.IsVirtualizing="False"
I have removed all data except 1 column and 2 rows.
Removed IsAsync=True from ItemsSource
Remove Database interaction. Give hard-coded values for test.

To Reproduce
I've spend 2 days without success to reproduce in a small project (shame to me).
I would suggest this:
Instead of binding to RelativeSource FindAncestor, bind to self, and use a converter to find the parent datagrid, and if any, return the SelectionUnit, else return null.
So Instead of:
<Condition Binding="{Binding SelectionUnit,RelativeSource={RelativeSource FindAncestor,AncestorType=DataGrid}}" Value="XXXX"/>
Do this:
<Condition Binding="{Binding RelativeSource={RelativeSource Self},Converter={StaticResource ParentDataGridSelectionUnitConverter}}" Value="XXXX"/>
And the Converter:
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is DataGridCell _dataGridCell)
            {
                var parent = VisualTreeHelper.GetParent(_dataGridCell);
                while (parent != null && !(parent is DataGrid))
                {
                    parent = VisualTreeHelper.GetParent(parent);
                }
                if (parent is DataGrid dataGrid)
                {
                    return dataGrid.SelectionUnit;
                }
            }
            return null;
        }

Screenshots

Environment (please complete the following information):

.net Core
vs2019]
Latest Version

I found a workaround!
Setting the DataGrid's SelectedIndex = -1 stops the MultiDataTrigers to fall into an exception.

fantastic 😆

Same issue when I replacing item of DataGrid.ItemsSource.
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=SelectionUnit; DataItem=null; target element is 'DataGridCell' (Name=''); target property is 'NoTarget' (type 'Object')


Improvements to inspect API to support displaying data

We currently provide information on which DSD components are part of a cube and which CSV column(s) they are associated with, but we don't support pulling out the code list associated with a dimension and showing the unique values (and their labels) and we don't provide a way for the user to dereference the identifier in the CSV file to end up with the user-friendly label.
Perhaps it'd be worth prototyping a tabular data viewer which can provide a user-friendly view of the tabular data?
We should speak with @canwaf and Greg since they did some work looking in to this. We should seek to understand what information they think is useful to extract from a CSV-W to display this kind of thing.

As a follow up to this, can you arrange a meeting with Greg, potentially @canwaf (if he wants to), myself and you. It would be good to get a bit of a clearer understanding exactly what the problems are, and to communicate the updates we've made to the inspect API to Greg and @canwaf. Perhaps the discussion can turn into a big of a wider debate on what functionality we expect end-users of the inspect API to want. For instance, surelly they'll need something that maps from the code list identifiers in the cube's CSV file through to the human readable labels?
On the point of linking the DSD URI to the CSV's URL, we have already implemented functionality (which has been release in v0.2.0) which does this for you.
On the point of whether we have a function to tell pandas which data types it should read each CSV column as, I'm not 100% sure whether we did this. Can you check our inspect code base to see if we do this, and if we don't can you please create a new ticket for it?
We need to spend some time thinking about what kinds of tools we think developers might want to use the inspect API to make, i.e. what kind of tools would they want to generate to present/make use of the data inside a CSV-W file? From that we can start deciding what information we need to extract from the CSV-Ws and how that information should be provided to the developer using the API. In order to achieve this we may want to spend some time developing some prototypes of what we think devs may want to do with CSV-W data so we can ensure we're providing sensible API functions to get the data out nicely; e.g. it would be useful to develop a tabular data viewer which replaces all identifiers with the human readable labels - we might want to take it a step further and have it change the shape of the data i.e. from standard to pivoted shape.

Closing as done/broken into other tickets.


Adding -iree-hal-materialize-interfaces2 to finally use hal.interface (mostly) as it was intended

hal.interface was intended to allow us to combine dispatch I/O into a smaller set of bindings but due to limitations of things like iree.placeholder on the old linalg-on-buffers path the @legacy_io style was used that kept the bindings 1:1 with the I/O. With the linalg-on-tensors path using the bindings properly it's now possible to start breaking that restriction. This change - the first of a chain of many - finds usage of constant buffers as inputs and tries to combine them into single bindings. Future changes as part of buffer allocation will do the same for transient buffers.
There's currently an entire missing layer of IR ops in the HAL that allow this to be done in phases. Ideally we should be performing an analysis of dispatch usage, the materialization of the interfaces based on that usage, and the application of those interfaces to the use-sites independently. Until the ops are added, though, this cuts through that by doing the analysis at the same time as the interfaces are built and tags the use-sites with the mappings required during subsequent conversion. As buffer allocation gets added I'll start peeling those out and rearranging the passes so that we have a much clearer order:

identify/group constants into pools
convert flow streams to (tbd) hal streams
perform hal stream dispatch analysis
perform buffer reservation
run analysis on dispatch usage with complete constant/transient allocation information
materialize structural interfaces
canonicalize interfaces and assign binding/ordinals
convert hal streams to command buffers

Only step 1 and 6 exist today, which is why there are so many layering skips here :)
An example with debug printing can be seen here:
https://gist.githubusercontent.com/benvanik/41407e8436b3e3fed3fd336b08d169fa/raw/881b7a66f9cbf43fff7e38c5c716aeae9b90322a/bert_materialize_interfaces_2.mlir
This demonstrates the analysis performed, the combining of constants/detection of strides, creation of the newly reduced binding sets on interfaces, and attribution of bindings to the use-sites. dispatch_45 is a good example showing a heavily-reused dispatch from 20 something use-sites coalescing a 20 something unique-per-site constant reads down to a single binding:
https://gist.github.com/benvanik/41407e8436b3e3fed3fd336b08d169fa#file-bert_materialize_interfaces_2-mlir-L7684-L8489
Once transient buffers are included here it'll drop from 24 total bindings down to 2 (constant in, transient in/out). https://gist.github.com/benvanik/41407e8436b3e3fed3fd336b08d169fa#file-bert_materialize_interfaces_2-mlir-L15551-L16109 shows 104 bindings down to 28 (of which can also go to 2 when transient buffers are used).

@MaheshRavishankar / @ScottTodd: I split out refactoring into the first two commits if you want to focus on the last one that adds all the logic. All of this is only enabled for the linalg-on-tensors path (when flow.dispatch.workgroups is used) and any case of constant usage outside the one handled here will fall back to the existing behavior of getting its own binding, so this should (hopefully) only be an optimistic optimization. The examples linked in the description will show what it's all doing, which is largely a simple scan + bucketing and a whole ton of goo for adding hal.binding attrs that then are picked up for when flow.dispatch is turned into hal.command_buffer.dispatch. That'll get better when there's a new hal.stream.dispatch that carries this information instead but that's still a few weeks away.

Thanks @benvanik . I dont have enough context here to review this, but I am waiting for this to land. I think this is one of the last blockers remaining on the linalg on tensors path.

Thanks @benvanik . I dont have enough context here to review this, but I am waiting for this to land. I think this is one of the last blockers remaining on the linalg on tensors path.

Hopefully I can land soon - I haven't exhaustively tested anything not currently enabled already beyond BERT, so if you have some other things you know that are blocked behind it you could give them a shot and see if any follow-up tuning is required (there's a few additional cases I could handle in here but was deferring them until we had usage).

Thanks @benvanik . I dont have enough context here to review this, but I am waiting for this to land. I think this is one of the last blockers remaining on the linalg on tensors path.

Hopefully I can land soon - I haven't exhaustively tested anything not currently enabled already beyond BERT, so if you have some other things you know that are blocked behind it you could give them a shot and see if any follow-up tuning is required (there's a few additional cases I could handle in here but was deferring them until we had usage).

I think in OSS, Bert, Resnet and MobileNet are blocked by this. If those pass, then we might have more examples from intergration tests internally.


Add the project's logo to the home page FAWE and FAVS

https://intellectualsites.gitbook.io/fastasyncworldedit/ and https://intellectualsites.gitbook.io/fastasyncvoxelsniper/ should have a small title icon, similar to https://intellectualsites.gitbook.io/plotsquared/

Hi again :)
Can I take this up?

Hi again :) Can I take this up?

You don't have to ask that. Open a PR if you like.
Thanks for your help.

Sure thing, where do I look for the logos?

Sure thing, where do I look for the logos?

Oh apologizes, I forgot to include https://github.com/IntellectualSites/Assets

Sorry, but I can't find the FAVS logo anywhere within the given resource, could you direct me to it?

No worries, I think https://static.wikia.nocookie.net/minecraft_gamepedia/images/4/40/Gunpowder_JE2_BE2.png/revision/latest?cb=20190816222615 is good to use.


added a new rebus #121

Associated Issue: #121
Summary of Changes

new rebus

Pull Request Test Coverage Report for Build 589

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

Totals

Change from base Build 514:
0.0%

Covered Lines:
158

Relevant Lines:
180

💛  - Coveralls


Multiple dex files define Lcom/google/android/gms/iid/MessengerCompat$1

Using this plugin in combination with pushwoosh-phonegap-plugin (and, I believe, some other push notification plugins) causes the following error on build for Android:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/iid/MessengerCompat$1;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)

According to https://github.com/Pushwoosh/pushwoosh-phonegap-plugin/issues/179, this is because this plugin uses an incorrect way to refer to Google Play Services?
This only started happening after the upgrade to recent version of the Android SDK tools (25.1.6).

I have same mention about dex in README.md and using correct way of declaring google play. Now it's time to find someone to blame.
Not sure but probably they declaration is colliding with this plugin.

They specify version 8.4.0 and this plugin declares any version

Can you try rebuild pushwoosh with my declaration

One more remark why pushwoosh, when there is excellent and free https://github.com/phonegap/phonegap-plugin-push ?

@pugwonk the issue #179 on pushwoosh has been updated. Any chance, you have same problem, meaning you're using old and deprecated cordova-plugin-mauron85-background-geolocation-phonegapbuild ?

Hey there! I'm not using your old plugin, but you're quite right - the bug is theirs, they were referencing a specific version of the v4 support library in plugin.xml. They appear to have actually fixed it now and everything works great.
Sorry for the red herring, and thanks for the speedy response!


Add AssignCommandTest and UnassignCommandTest

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 50.00000% with 11 lines in your changes missing coverage. Please review.

Files with missing lines
Patch %
Lines

src/main/java/seedu/address/model/AddressBook.java
50.00%
7 Missing and 4 partials :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Files with missing lines
Coverage Δ
Complexity Δ

src/main/java/seedu/address/model/AddressBook.java
65.62% <50.00%> (+0.14%)
29.00 <7.00> (+2.00)

... and 22 files with indirect coverage changes


Can't figure it out how to use puphpeteer correctly

I already saw this answer, but I can't make it work,
$browser = (new Puppeteer())->launch();
$page = $browser->newPage();
$page->goto('https://website.com/product_detail.html');
$page->querySelectorAll('.product-info-main .price-container .price-wrapper');

$callback = JsFunction::createWithParameters(['element'])
        ->body("return element.getAttribute('data-price-amount')");
$show = $page->evaluate($callback);

dump($show);
$browser->close();

I already tried change the element name using the query selector, but it doesnt work, can someone help me? because the documentation is not clear enough for me, thanks

@khrisnagunanasurya can you please explain how you solved that?


[$250] [CVP] Remove Split Expense, Assign Tasks, Pay Someone in Global Create

Coming from this thread I’m going to go forward with creating a GH around this p/s. Let us know if you have any additional feedback. cc @anmurali
Problem: Users are getting overwhelmed when signing up. When they first enter the app, they can go a lot of directions. A primary direction we send them to is Global Create, where they see a lot of options. Given that most of our sign-ups are coming to us for expense tracking, we’re showing them a lot of options that are largely aspirational and that don’t apply to making their first experience in submitting an expense great. Thus, we’re causing more confusion, or just noise early on, and thus likely lowering conversion.
Solution: Let’s optimize global create for the most important options to drive expense adoption.

In Global Create, we’ll remove Split expense, Assign tasks, Pay someone.

These options are still going to be available in DMs, workspace chats, groups, etc. We’re just removing them from global create.

We’ll keep a New Workspace as an option for first-time users, so it is unchanged.
Quick action will remain unchanged.

As a note, Book Travel and Send Invoice are already planned to be only available if your workspace is enabled for them and if you are an admin in the Send Invoice case, so normal users already won’t see those. Thus, for new users their global create will now be: Start chat, Track expense, Submit expense, New Workspace, and the quick action option

[ ] TODO (once we complete): we need to loop in Applauce once this is done because it will change their test rails so we need to get them to update those. cc BZ member

Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0149c0ef757838792e
Upwork Job ID:<PHONE_NUMBER>914964733
Last Price Increase: 2024-08-13
Automatic offers:

jjcoffee | Reviewer | 103542241
neonbhai | Contributor | 103542245

Issue OwnerCurrent Issue Owner: @jjcoffee

Mock with Quick Action:

Mock without Quick Action:

Let us know what you think about the proposal, @jjcoffee. 👍

@trjExpensify Are you the BZ for this? If not, can one be assigned? They need to be aware of the following:

we need to loop in Applause once this is done because it will change their test rails so we need to get them to update those.

I'm not, but let me get one assigned! I'll be out most of next week, otherwise I'd take it myself.

pahaha, yes Melvin you troll.

Approved!
@OfstadC Just tagging you directly to draw your attention to this line in the issue description in case you haven't spotted it yet:

we need to loop in Applause once this is done because it will change their test rails so we need to get them to update those.

@danielrvidal Is there a specific flow for updating Applause -- Or is a Slack post all that's needed here?

I think I'd just whatever our normal process is to update Applause. We just need to make them aware that Global Create is being changed.

Found SO for Applause update :chefskiss:
Posted here.

Regression Test Proposal

Login with a brand new account
Click on FAB (green plus icon)
Verify that the only options available are Start chat, Track expense, Submit expense, (Book Travel if on travel beta), New Workspace
Tap New Workspace
Verify that Send invoice option becomes available in the FAB
Submit or track an expense and verify that it shows up in the quick action

Do we agree 👍 or 👎

Payment Summary

@jjcoffee paid $250 via Upwork
@neonbhai paid $250 via Upwork


Object.constructor should be ObjectConstructor instead of Function

TypeScript Version:  2.1.1
Code
type PlainObject = {
    constructor: ObjectConstructor;
    [name: string]: any
}

let o: PlainObject = { key: "value" };

Expected behavior:
It should compile as an object literal should satisfy the PlainObject type.
Actual behavior:
It gives a compile error which at the end boils down to Object.constructor being a Function and not ObjectConstructor.
Type '{ key: string; }' is not assignable to type 'PlainObject'.
  Types of property 'constructor' are incompatible.
    Type 'Function' is not assignable to type 'ObjectConstructor'.
      Property 'getPrototypeOf' is missing in type 'Function'.

Please see a related StackOverflow thread here: http://stackoverflow.com/a/42028363/1323504

Also, in the comment above the Object.constructor property it clearly states that:

The initial value of Object.prototype.constructor is the standard built-in Object constructor

So shouldn't it be:
interface Object {
    /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */
    constructor: ObjectConstructor;

    ...
}

All other objects in the system get the Object properties. C.constructor being ObjectConstructotr is not correct. you need somthign like https://github.com/Microsoft/TypeScript/issues/3841 first.

@mhegazy I see. I have two followup questions.

Couldn't it then be at least Function | ObjectConstructor? I haven't thought it over yet, just a quick idea.

Can you suggest any workaround for implementing the above mentioned PlainObject stuff in current version? A PlainObject would like to mean roughly this:

function isPlainObject(obj: any) {
  return obj && obj.constructor === Object || false;
}

@mhegazy
But as the comment in the docs implies isn't the constructor an instance of ObjectConstructor?

Couldn't it then be at least Function | ObjectConstructor? I haven't thought it over yet, just a quick idea.

not sure how that helps any one. Function | ObjectConstror is not callable nor does it have the members of ObjectConstructor. so kid of the worst of both worlds..

Can you suggest any workaround for implementing the above mentioned PlainObject stuff in current version? A PlainObject would like to mean roughly this:

I am not sure i understand the scenario you are trying to achieve well enough to make any recommendations. can you elaborate.

But as the comment in the docs implies isn't the constructor an instance of ObjectConstructor?

Not sure why would the comment say that. it just says "initial value", i.e. it can change to something else, as it is mutable.

@mhegazy About the union type, thanks for the clarification, that's what I ment about not thinking it over, sorry.
What I would like to have is a type, which identifies plain objects. I treat an object instance as "plain", if its constructor equals to Object, so in other words it's not an instance of a class, nor an array, etc., hence the term "plain". The term itself refers to the term which jQuery uses in its $.isPlainObject implementation.
To summarize, an instance obj should be instance of PlainObject if and only if obj && obj.constructor === Object is true.
Note that jQuery's isPlainObject method is I guess much more precise on this, but for me this would be pretty much enough.

We have the new primitive type object, but your definition doesn't account for Object.create(null):
> $.isPlainObject(Object.create(null))
true
> Object.create(null).constructor
undefined
> typeof Object.create(null)
"object"

@RyanCavanaugh thanks for the points, yes, indeed I wasn't thinking about Object.create(null). I could probably refine the definition like this.
obj is PlainObject <=>obj && typeof obj === "object" && (obj.constructor === null || obj.constructor === Object)

My bigger issue with the new object type is that - as far as I understood from the announcement - it's compatible with any class types as well, isn't it?

My bigger issue with the new object type is that - as far as I understood from the announcement - it's compatible with any class types as well, isn't it?

Yes
It sounds like what you want is a way to enforce "This object was created via an object literal" ? There's not a way to do that, to my knowledge.


peptide synthesis

I think peptide synthesis should be a part of
translation. Formation of peptide bonds is an
essential subprocess of translation and protein
synthesis.
Reported by: syrhee
Original Ticket: "geneontology/ontology-requests/3143":https://sourceforge.net/p/geneontology/ontology-requests/3143

thanks www.movied.org


Move refund script execution time to when gas prices are the cheapest

Background
https://etherscan.io/gastracker
Statistically, the Ethereum gas price is the cheapest about 5 AM UTC. In order to save more gas, I'd like to move refund script execution time to about 5 AM UTC. Maybe 4:45 AM UTC will be good as the gas price can rise at exact o'clock by some product launches.
Done when

[ ] Change refund script execution time to 4:45 AM UTC.

we're actually running the refund script 3 times in 24 hours. 10 minutes past hours 0, 8, 16. Hours 0 and 8 look pretty cheap as well, hour 16 is the most expensive. The frequency was increased to prevent pigeon jailing.


Add Queue implementation using linked list in c++

I would like to work on this issue . Please assign it to me.

can you please assign me this issue?

I would really like to work on this issue and contribute to this amazing repository. I have prior knowledge about queues as well as linked list ,so ,kindly consider assigning  this to me under GSSoC '21.

Kindly assign this task to me.
I had very strong understanding of DSA.

Can we  create PR before 8 march (for gssoc  )

working on this , will complete it soon

I am a GSSOC'2021 participant. Please assign me this work.I am good at C++,C,Java and python.Also good at algorithm and data structures.I will write programmes with detailed explanation and proper commenting.

I am a GSSOC'2021 participant. Please assign me this work.I am good at C++,C,Java and python.Also good at algorithm and data structures.I will write programmes with detailed explanation and proper commenting.

@pallavidhere23  I am working on this issue you can go for some other one:)


make it compatible with 2.401.1 jenkins

Tha parent pom for the plugin is still compatible with 2.3xx.x version so this change should be fine.

Testing done

### Submitter checklist
- [ ] Make sure you are opening from a **topic/feature/bugfix branch** (right side) and not your main branch!
- [ ] Ensure that the pull request title represents the desired changelog entry
- [ ] Please describe what you did
- [ ] Link to relevant issues in GitHub or Jira
- [ ] Link to relevant pull requests, esp. upstream and downstream changes
- [ ] Ensure you have provided tests - that demonstrates feature works or fixes the issue

This can't work. The plugin was already on 2.433 which is newer than what you want. It requires changes in core that were only released with that version.

@mawinter69 Could you tell me features for which this plugin explicitly depends on 2.433 ?

It depends on 2.434 due to this change
https://github.com/jenkinsci/jenkins/pull/8705 at least, it might depend on other changes after 2.401 that I use because they were available

It depends on 2.434 due to this change jenkinsci/jenkins#8705 at least, it might depend on other changes after 2.401 that I use because they were available

Great! Thanks for the info.


Narrows lost during simultaneous server-initiated reloads

When I have several Zulip tabs open to different narrows and a set of server-initiated reloads is kicked off (by e.g. reopening my laptop after a little while away from it), several (but not always all) of the tabs lose their narrow.
Wild speculation: maybe there's some kind of race involving this localstorage cleanup?

Yeah, that regex is extremely suspicious as a possible cause for this bug -- it's clearly incorrect to remove all reload tokens.  Just to be clear, when you're seeing this, are the affected tabs multiple tabs connected to the same organization? I'd expect different organizations to have independent local storage namespaces.
I'm not sure what the right algorithm is to replace it -- we presumably do want to prune old reload tokens eventually, which likely means needing some way to check if one is active. Probably a time-based thing, like "Prune reload tokens more than 24 hours after creation old" would work, but may require some refactoring to the data structure to support that.

Just to be clear, when you're seeing this, are the affected tabs multiple tabs connected to the same organization?

Yep! I haven't tried across multiple organizations but my expectations are the same as yours.

@jdherg I expect the fix for this to merge shortly; thanks again for the excellent bug report.

Amazing, thanks @timabbott + @evykassirer ! 🎉

@jdherg just wanted to say this has been on Zulip Cloud for a bit, so if you see further issues, we likely have another bug to track down.


Sometimes VERSION files can be create empty

While debugging a brand new free trial plan with @nicolasvienot we noticed that Meilisearch couldn't start due to an empty VERSION file. It's very strange as it seems quite rare. However, it doesn't seem impossible as writing to this file is not as enforced as when we use LMDB. We could have missed a disk sync or something.
The VERSION file was never populated with anything as the issue appeared at creation time.
Meilisearch version:
We don't know the impacted version but at least before v1.7.4.
Additional context
It was running on the cloud, more specifically on Digital Ocean in a Kubernetes and Docker container.

Hello,
did we consider the option of writing the version in the main DB? If so, why was it rejected?
The advantage here is we could write the VERSION atomically when creating a main db.
Disadvantages: harder to read if it's in the DB, need a way to support both schemes for backward compat
Other possibility: handle an empty VERSION file as if there was no VERSION file at all.

Needs to be able to reproduce (which is not the case currently) to be able to fix it


Unable to load cyber_engine_tweaks.asi error 126

I get this error after installing CET and Native Settings and Metro System:

This message appears twice, once after clicking on the Cyberpunk 2077 shortcut and again after I click OK
Afterwards, Cyberpunk 2077 works fine but none of the mods load.
I am using Cyberpunk 2077 (steam version) patched to 1.61.
The only mods I have installed are the following:
Game version 1.61 - fix 1-107-1-21-1-1668271994 - This is the CyberEngineTweaks version I downloaded
Native Settings UI 1.92-3518-1-92-1673118948
Metro System 1.8-3560-1-8-1673727377

You need to download newer VC runtime. You probably have outdated one.
You can install it from here https://aka.ms/vs/17/release/vc_redist.x64.exe


Possible to run more than one rq-scheduler?

Hi, I'm trying to adjust my application to use two queues (priority based) - they currently all just sit in default.  I have a custom runner for rq-scheduler, similar to:
#!/usr/bin/env python

from rq_scheduler import Scheduler
scheduler = Scheduler('default', connection=redis_connection)
scheduler.run()

I tried to add a second similar python script, specifying a different queue, but I get this:
ValueError: There's already an active RQ scheduler

Looking at code this confirms it registers itself at a single key in the Redis db.  The rqscheduler executable script provided on rq-scheduler installation doesn't even take a queue name - it's just default, so I can't run two of those either.
Is it even possible to do what I want to do here?

Id like to reopen for a different use-case. I care about HA, so I would prefer there be at least two workers running just in case one crashes. So same question, is it even possible to run two at the same time?


A few hydrogen deploy enhancements

WHY are these changes introduced?
Update initialize repository with initial branch
Fix https://github.com/Shopify/oxygen-platform/issues/599
Allow deployment of anything
fix https://github.com/Shopify/oxygen-platform/issues/571
WHAT is this pull request doing?
Unless specified otherwise in the code any git repo initialization will create the default branch as "main" regardless of ones local git config. This matches our Shopify default including the ones in the Hydrogen/Oxygen Admin.
Until we can think of a more user friendly method of deploying any folder to Oxygen without the limitation of the asset URL, I think we should keep the new option pathToBuild hidden. If this option is used, build step is skipped and will simply zip and upload the path provided.
Checklist

[x] I've considered possible cross-platform impacts (Mac, Linux, Windows)
[x] I've considered possible documentation changes

Force Push Notes:

Adding changeset to PR


[CSL-1769] Use log-warper 1.3.2

Since @volhovM told me upgrading to the latest log-warper would fix the issue, that's what I did. Well, the good news is that I finished the upgrade, the bad news is that it didn't fix the issue.

Alright, https://github.com/serokell/log-warper/pull/27 fixes it! Thank you, @volhovM

No more stdout logging in csl master? Is this patch responsible for that? How can I get it back? @int-index @volhovM

The patch should've fixed the flag that disables logging. I only tested that logging is indeed disabled it when lcConsoleOutput is set to False, but not that logging still works when it's set to True...

I put printOutput: true in the top level of the configuration file but still only warnings and errors are printed.

topLevelParams :: [Text]
topLevelParams =
    ["rotation", "showTime", "printOutput", "filePrefix" ]

I think I need to set termSeverity to Debug, but I can't because it's not in the topLevelParams.

I created https://issues.serokell.io/issue/CSL-1778 to track this.

I think I need to set termSeverity to Debug

Right, @volhovM told me the same, so I suppose that's what we should do.


Adds a message to packit.Fail in detect

Checklist

[x] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[ ] I have added an integration test, if necessary.
[x] I have reviewed the styleguide for guidance on my code quality.
[x] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

@robdimsdale All branches are tested!


SemverKind::Lightweight changes the environment variable

One of the mistakes I always do when enabling vergen (and soon after forgetting about it) is to jump through hoops first discovering the need for SemverKind::Lightweight through #100 (or just trial and error), then I need to look up the environment keys as the env!("VERGEN_GIT_SEMVER") no longer works, find out I need to use env!("VERGEN_GIT_SEMVER_LIGHTWEIGHT").
While looking around, I noticed that the landing page of docs lists an interesting example value for the lightweight version:
https://github.com/rustyhorde/vergen/blob/d82785850ce563c24f5a157992a7d3e59726078a/src/lib.rs#L112-L113
Further digging this, the old commit no longer exists, but similar commit 61e560eacc2622c268660e83275d6ee3b4e70107 does. For it, git 2.25.1 reports 5.0.1-2-g61e560e for both git describe with and without --tags.
It seems that it would had helped me use vergen if:

the VERGEN_GIT_SEMVER name would always stay the same (regardless of lightweight or not)
by default, the --tags query could probably be made -- I cannot see any downsides, but there of course could be
the error from git describe operation shouldn't be hidden, instead a hint to disable that variable could be displayed if the branch had no tags

This should be resolved with the release of 8.0.0-beta.0.   VERGEN_GIT_SEMVER has been renamed to VERGEN_GIT_DESCRIBE as that more accurately represents what is being generated now.   I plan to back port some of the new features back to version 7 and 6 over the next month.  Feel free to re-open if you are still having issues.


inconsistent/incomplete /dev/disk/by-id links

We are experiencing a situation where the /dev/disk/by-id/... symlinks are inconsistent across reboots. Sometimes links for all disks/dasds are present, sometimes only a (different) subset is present.
[root@openshift-8 ~]# ll /dev/disk/by-id/
total 0
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-0X5422-part1 -> ../../dasda1
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-0X5422-part2 -> ../../dasda2
lrwxrwxrwx. 1 root root 11 Dec  7 10:19 ccw-0X5622 -> ../../dasdc
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-0X5622-part1 -> ../../dasdc1
lrwxrwxrwx. 1 root root 11 Dec  7 10:19 ccw-0X5722 -> ../../dasdd
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-0X5722-part1 -> ../../dasdd1
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-IBM.750000000FRB71.0230.22.00000000000027200000000000000000-part1 -> ../../dasda1
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-IBM.750000000FRB71.0230.22.00000000000027200000000000000000-part2 -> ../../dasda2
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-IBM.750000000FRB71.0230.22-part1 -> ../../dasda1
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-IBM.750000000FRB71.0230.22-part2 -> ../../dasda2
lrwxrwxrwx. 1 root root 11 Dec  7 10:19 ccw-IBM.750000000FRB71.0232.22 -> ../../dasdc
lrwxrwxrwx. 1 root root 11 Dec  7 10:19 ccw-IBM.750000000FRB71.0232.22.00000000000027200000000000000000 -> ../../dasdc
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-IBM.750000000FRB71.0232.22.00000000000027200000000000000000-part1 -> ../../dasdc1
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-IBM.750000000FRB71.0232.22-part1 -> ../../dasdc1
lrwxrwxrwx. 1 root root 11 Dec  7 10:19 ccw-IBM.750000000FRB71.0233.22 -> ../../dasdd
lrwxrwxrwx. 1 root root 11 Dec  7 10:19 ccw-IBM.750000000FRB71.0233.22.00000000000027200000000000000000 -> ../../dasdd
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-IBM.750000000FRB71.0233.22.00000000000027200000000000000000-part1 -> ../../dasdd1
lrwxrwxrwx. 1 root root 12 Dec  7 10:19 ccw-IBM.750000000FRB71.0233.22-part1 -> ../../dasdd1

[root@openshift-8 ~]# ll /dev/disk/by-id/
total 0
lrwxrwxrwx. 1 root root 11 Dec  7 10:48 ccw-0X5722 -> ../../dasdd
lrwxrwxrwx. 1 root root 12 Dec  7 10:48 ccw-0X5722-part1 -> ../../dasdd1
lrwxrwxrwx. 1 root root 11 Dec  7 10:48 ccw-IBM.750000000FRB71.0233.22 -> ../../dasdd
lrwxrwxrwx. 1 root root 11 Dec  7 10:48 ccw-IBM.750000000FRB71.0233.22.00000000000027200000000000000000 -> ../../dasdd
lrwxrwxrwx. 1 root root 12 Dec  7 10:48 ccw-IBM.750000000FRB71.0233.22.00000000000027200000000000000000-part1 -> ../../dasdd1
lrwxrwxrwx. 1 root root 12 Dec  7 10:48 ccw-IBM.750000000FRB71.0233.22-part1 -> ../../dasdd1

environment is Fedora 35 with kernel-5.14.18-300.fc35.s390x and s390utils-core-2.17.0-2.fc35.s390x (version shouldn't matter much as etc/udev/rules.d/59-dasd.rules hasn't changed for long time, except the scheduler setting)
Fedora 35 with kernel-5.15.6-200.fc35.s390x doesn't seem to have the /dev/disk.by-id directory at all, looking further ...
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1963192

hmm, now I understand it even less, booting with kernel 5.14.18 with rd.udev.debug the journal is full of LINK messages for the by-id symlinks from the 59-dasd rules file, but nothing is there, not even the /dev/disk/by-id directory ...

I wonder if there is a race condition between creating the actual symlinks and creating the /dev/disk/by-id/ directory ...

I think messages like this explain the missing symlinks
...
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: No reference left for '/dev/disk/by-id/ccw-IBM.750000000FRB71.0233.22.00000000000027200000000000000000', removing
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: Updating old device symlink '/dev/disk/by-id/ccw-0X5722', which is no longer belonging to this device.
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: No reference left for '/dev/disk/by-id/ccw-0X5722', removing
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: Updating old device symlink '/dev/disk/by-id/ccw-IBM.750000000FRB71.0233.22', which is no longer belonging to this device.
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: No reference left for '/dev/disk/by-id/ccw-IBM.750000000FRB71.0233.22', removing
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: Updating old device symlink '/dev/disk/by-id/ccw-IBM.750000000FRB71.0233.22.00000000000027200000000000000000', which is no longer belonging to this device.
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: No reference left for '/dev/disk/by-id/ccw-IBM.750000000FRB71.0233.22.00000000000027200000000000000000', removing
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: Updating old device symlink '/dev/disk/by-id/ccw-0X5722', which is no longer belonging to this device.
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: No reference left for '/dev/disk/by-id/ccw-0X5722', removing
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: Updating old device symlink '/dev/disk/by-id/ccw-IBM.750000000FRB71.0233.22', which is no longer belonging to this device.
Dec 10 10:48:30 openshift-8.s390.bos.redhat.com systemd-udevd[420]: dasdd: No reference left for '/dev/disk/by-id/ccw-IBM.750000000FRB71.0233.22', removing

ping me for a full log

I'm currently unable to access the RedHat BZ. I need to get an account first.
Can you share more details about your setup? How are the DASDs configured? Did you use chzdev -e to have a persistent
configuration? Is it always the same DASDs that have this issue or is it random?
I've tried several reboots on an LPAR with 10 DASDs persistently configured using chzdev -e on a freshly installed
F35 (tried both 5.15.6-200.fc35.s390x and 5.14.10-300.fc35.s390x + s390utils-2:2.17.0-2.fc35.s390x) but
wasn't able to reproduce the issue so far.

my environment is

z13 with z/VM 6.4.0
the guest is Fedora 35 with kernel-5.14.18-300.fc35.s390x and systemd-udev-249.7-2.fc35.s390x
DASDs configured with rd.dasd= and /etc/dasd.conf
what links are present/missing is purely random

The original report is from OCP/RHEL-8.x with z/VM 7.2.0 on z13 and z15.
I suspect there might be something wrong with udev or kernel handling the devices, rather than the udev rules in s390utils which are pretty straightforward.
20220105-1028-udev.log.zip
created with
journalctl -b | grep systemd-udev > 20220105-1028-udev.log
ll /dev/disk/by-id/ >> 20220105-1028-udev.log
lsdasd

Have you also removed the rd.dasd= definitions from the kernel parameter line and used the zdev "rootfs mode" purely?
Right now I am testing with /etc/dasd.conf completely removed (both from system and from initrd) and still no 100% success (4x all links created, 1x no links at all, 1x links for dasdc1 only).

I believe using the zdev persistent config doesn't matter. I have converted my system fully to zdev for dasds and I am still getting random result with the "by-id" links. I suspect the problem is deeper in udev or kernel.

@sharkcz it's been a while and I haven't been able to come around looking deeper into this. Is this still reproducible?

hi @hoeppnerj , I believe it still does happen. I have tried a fresh F-40 installation on a z/VM guest (with a single DASD) and after the first boot there was no /dev/disk/by-id/ directory at all, but on a subsequent boot the by-id links have been present.

I have checked another z/VM systems with multiple DASDs (F-39 with kernel 6.7) and they both have entries /dev/disk/by-id/, but they are not complete if I see right. Although this is likely caused by a non-unique ID_UID returned by dasdinfo (ID_XUID is unique) ...

And after another series of reboots on a F-39 system (with 1 DASD) I would say the by-id links are created reliably. So I suspect we might have a new F-40 (and likely RHEL-10) issue not creating the symlinks at all. And perhaps the original issue went away at some point before F-39 ...

Alright, thanks for the update. I'll try to have a look again. As it seems it must be something to do with 59-dasd.rules and dasdinfo. Maybe the tool isn't getting the information in time.

I would say please try F-39 on a slightly bigger VMs than my single dasd one to either confirm or refute my findings. Similar with F-40. Right now I suspect a change in systemd/udev between v254 in F-39 and v255 in F-40. Being able to run the udev-worker process under strace could reveal something. I have even tried with SELinux disabled on the F-40 to rule out a too strict SELinux policy :-)

SUSE found a similarly looking issue and we also didn't find a right way to fix it. It would be interesting to know what's the root cause. The most interesting part is that we got this issue much later than Fedora, early this year. We could observe it after we updated 15.6 Beta with the s390-tools 2.31.0. Reverting the package to 2.30.0 "fixed" the issue.
Even we looked at 95dasd_rules module and tried to disable it or adjust it. For a short time it was emitting twice a message (we weren't using FBA):
[    4.587896][  T312] dracut: Warning: Configuring ECKD DASD 0.0.6000 as FBA DASD
[    4.588069][  T312] dracut: Configuring devices in the persistent configuration only
[    4.588091][  T312] dracut: FBA DASD 0.0.6000 configured
But fixing it or not, symlinks were in incorrect order.
In the end we decided to patch grub2-mkconfig, so the symlinks are tested for existence and created.
We could reproduce it only while installing LPAR, our VMs under z/VM never had this issue. Odd.


One users skin still wont load on the newest version

Hello,
I have had an issue here before that boiled down to being caused by a wontfix related to different auth servers and their effect on skin loading. The other users from that issue have since bought a legitimate copy of the game and are all signed in with the official latest version build of the mod and no other mods. However, one users model still wont load with the error "Model loading disabled by safety settings" but all safety settings are fully disabled for both the users and server.

Any help on this would be appreciated.

Open the Error Log in Social Settings and see what's blocking the model loading. The model loads fine in the Web viewer (https://tom5454.com/cpm_viewer.html?name=CookieDaAvali), and as a player head in my game. Make sure your server is on online-mode.


Code examples incorrect

Hi,
The code examples posted are no longer correct. In addition to creating a const connection = new Connection() object you also need to call connection.connect() to actually make the connection.
See the examples in the tedious codebase: https://github.com/tediousjs/tedious/blob/master/examples/minimal.js
I've also tried this myself.
Thanks,
Hugo

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

ID: 353bf767-02de-e7ea-d4a1-e0c4b9a82b4f
Version Independent ID: 93c423a3-a489-a283-084d-a54526f524d5
Content: Use Node.js to query a database - Azure SQL Database & SQL Managed Instance
Content Source: articles/azure-sql/database/connect-query-nodejs.md
Service: sql-database
Sub-service: development
GitHub Login: @stevestein
Microsoft Alias: sstein

@hwride Thank you for the feedback. We are actively investigating and will get back to you soon.

@hwride Thanks for the valuable input to make the document correct.
We have updated the document content accordingly. The changes should be live once the PR is approved. You can review the PR meanwhile and let us know for any issue.

@hwride We will now proceed to close this thread. Changes would be live in few days. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.

Hi @AnuragSharma-MSFT
I can't see a PR linked in this ticket or a recent one in the list, could you please link me to the relevant one?
Thanks

Here is the PR:
MicrosoftDocs/azure-docs-pr#145958

That link gives me a 404.

I think its related to access to the repo. I am posting the screenshot of the same. Please let me know if this helps:

Ah ok,yes that looks good. Thanks!


Objects stacked on top of others jump around when the bottom on is moved

Hi,
I've got a base building game where you place blocks on top of each other to build a base. You can also carry a stack of blocks. These blocks are all nvr interactable objects. In a version of newtonVR from the summer (very old) this used to work perfectly, now with the recent versions the blocks that are on top of the one you are holding slide and jump around as you move the bottom one. This is more exaggerated by increasing the mass and drag of the objects or with a lower framerate it is far worse.
This also occurs in the newton sample scene if you try to move around the stack of yellow blocks for example, move them horizontally and you will see the top block jump and shift position. If you increase the drag to 2 on those blocks the effect will be increased. The block that you are holding also does some jitter while just moving left and right horizontally.

Thanks for reporting this (and other bugs!). I tried to reproduce this and was very surprised to see the editor dropping a bunch of frames, which seems to be causing this. Some of the issue at least seems to be caused by VR.WaitForGPU. Which it seems unity is fixing in 5.5. See the thread here:
https://forum.unity3d.com/threads/vr-vive-performance-problems-regular-vr-waitforgpu-spikes.434291/
It seems like this is caused by the editor redrawing stuff it doesn't need to be. If you enable "maximize on play" in the game window then the issue seems to go away.
This does seem related to frame rate. So try *Enabling Player Settings -> Other settings -> Graphics Jobs and Single-Pass Stereo Rendering".
Other than that, we will continue to try and fix PhysX framerate issues but I'm not sure how far we'll get. Hopefully this does actually get fixed in Unity 5.5.

Thanks. Yeah, in a build it definitely is better but still happens a bit. In the older version of newton that I was using it never occurred. It could be related to the unity version as well, I'm not sure exactly what version we were using before we updated newton but it's possible it was 5.4.2 or 5.4.1.


[question] which branch is recomended?

I'm simply curious which branch is recomended for use by general public? In many projects master is not considered a production state, and one should rely on tags/releases. I also noticed some of the bugs issues are around version specific branches like 0.4.
What is the recomended model at this time?

Stable is master, 0.4 is still under dev on which we are spending most of our time, I'd recommend using this one if your project is just starting.


[Question]: Why Registration does not contain a BorrowedFd instead of a RawFd?

When looking at the  Registration type for unix ,  I stumbled across the required invariant:

This describes a valid file descriptor that has not been closed. It will not be closed while this object is alive.

and it looks a lot to what is guarantee by the BorrowedFd type:

This has a lifetime parameter to tie it to the lifetime of something that owns the file descriptor. For the duration of that lifetime, it is guaranteed that nobody will close the file descriptor.

So, I thought naively this is maybe a valid design that will avoid the unsafe and ensure the invariant is respected:
pub struct Registration<'fd> {
    fd: BorrowedFd<'fd>,
}

But I'm sure you are well aware about BorrowdFd, so my question is, why have you decided to use a RawFd and unsafe instead of a BorrowedFd?

It would add lifetime complications to the API that don't really need to be there.
To clarify, adding this would mean that all Async types would need a lifetime parameter, and would need to implicitly operate on only references. As this would make Async functionally impossible to use outside of very niche circumstances I haven't done this.
This is essentially equivalent to borrowing the source in place, which is safe in current Rust. The unsafe is unfortunate but also probably unavoidable.


Pipelines list, Mosaic view

Mockups

Specifications

On mouse hover every element will slithly increase its size (as in Agents section)
Every element in the list will display the first 3 agents contained in the pipeline.
Clicking in the pipeline name will open the Pipeline Edit page (described in #146  )
Clicking on the Gear icon, will open the Pipeline settings popup (described in #150 )
Clicking on the Rocket icon will open the popup to run the pipeline (described in #151 )


[11.x] rename the $options variable to be just $option in the specifyParameters method

I believe existing test cases will validate this small change.

If it's working we can just leave it for now 👍


Files missing in gn windows artifacts

https://ci.chromium.org/p/flutter/builders/try/Windows windows_home_scroll_perf__timeline_summary/17378?
+20 ms]   [  +19 ms] Done persisting file store
[windows_home_scroll_perf__timeline_summary] [STDOUT] stdout: [  +15 ms]   [  +12 ms] Target unpack_windows failed: Exception: Unsupported file type "notFound" for C:\b\s\w\ir\x\w\recipe_cleanup\tmp8h5hnvuy\flutter sdk\bin\cache\artifacts\engine\windows-x64-profile\flutter_windows.dll.exp
[windows_home_scroll_perf__timeline_summary] [STDOUT] stdout: [        ]              #0      unpackDesktopArtifacts (package:flutter_tools/src/build_system/targets/desktop.dart:33:7)
[windows_home_scroll_perf__timeline_summary] [STDOUT] stdout: [        ]              #1      UnpackWindows.build (package:flutter_tools/src/build_system/targets/windows.dart:80:29)
[windows_home_scroll_perf__timeline_summary] [STDOUT] stdout: [        ]              #2      _BuildInstance._invokeInternal (package:flutter_tools/src/build_system/build_system.dart:847:27)

More failures:

https://ci.chromium.org/p/flutter/builders/try/Mac plugin_test/24633?
https://ci.chromium.org/p/flutter/builders/try/Windows build_tests_1_3/35075?
https://ci.chromium.org/p/flutter/builders/try/Windows build_tests_2_3/34699?
bhttps://ci.chromium.org/p/flutter/builders/try/Windows%20build_tests_3_3/35058?
https://ci.chromium.org/p/flutter/builders/try/Windows framework_tests_misc/32574?
https://ci.chromium.org/p/flutter/builders/try/Windows tool_integration_tests_3_6/11556?
https://ci.chromium.org/p/flutter/builders/try/Windows tool_integration_tests_4_6/11548?
https://ci.chromium.org/p/flutter/builders/try/Windows windows_home_scroll_perf__timeline_summary/17378?

The issue is because gn targets do not generate the following files:

flutter_windows.dll.exp
flutter_windows.dll.lib
flutter_windows.dll.pdb

https://cs.opensource.google/flutter/flutter/+/master:packages/flutter_tools/lib/src/build_system/targets/windows.dart;l=18?q=flutter_windows.dll.exp&ss=flutter%2Fflutter


wrap remote triton and marathon reads in an io.LimitReader

Previously we allowed unbounded reads from these remote sources, which
can lead to performance and stability issues with prometheus.
Issue: https://github.com/prometheus/prometheus/issues/3228

This should not be configurable. How did you determine that 10MB is enough for any possible user?

@brian-brazil I didn't, but that's what @tomwilkie suggested on the original issue. https://github.com/prometheus/prometheus/issues/3228#issuecomment-332913431 I don't know of any evidence to support that though. 25mb?

He was talking about a different use case. I lack the domain knowledge to know how big these can get. These are outbound requests in any case.

@brian-brazil The two calls I'm changing in this PR are for reading the marathon/triton response. Setting some limit on those seems like a good idea.
I don't know enough to suggest a limit on the remote storage.

Thanks for this @adamdecaf - however issue https://github.com/prometheus/prometheus/issues/3228 was for all discoveries and we don't know if it's still relevant. Closing this for now, we can always reopen. Thanks!
(Triaged during our bug scrub session)