Error in Retrieving audio in SFDC

I've followed the guide to enable audio recordings in SFDC.
Transcripts are coming in fine, however when i try to listen to the recording i get this error in the console within SFDC:
RECORDING_URL:CHANGED {"errorMessage": "Could not deserialize key data.", "errorType": "ValueError", "stackTrace": ["  File \"/var/task/sfGenerateAudioRecordingStreamingURL.py\", line 69, in lambda_handler\n    url, date_less_than=expire_date)\n", "  File \"/opt/python/lib/python3.7/site-packages/botocore/signers.py\", line 341, in generate_presigned_url\n    signature = self.rsa_signer(policy)\n", "  File \"/var/task/sfGenerateAudioRecordingStreamingURL.py\", line 78, in rsa_signer_with_key\n    backend=default_backend()\n", "  File \"/opt/python/lib/python3.7/site-packages/cryptography/hazmat/primitives/serialization/base.py\", line 16, in load_pem_private_key\n    return backend.load_pem_private_key(data, password)\n", "  File \"/opt/python/lib/python3.7/site-packages/cryptography/hazmat/backends/openssl/backend.py\", line 1186, in load_pem_private_key\n    password,\n", "  File \"/opt/python/lib/python3.7/site-packages/cryptography/hazmat/backends/openssl/backend.py\", line 1411, in _load_key\n    self._handle_key_loading_error()\n", "  File \"/opt/python/lib/python3.7/site-packages/cryptography/hazmat/backends/openssl/backend.py\", line 1465, in _handle_key_loading_error\n    raise ValueError(\"Could not deserialize key data.\")\n"]} string

Hey we have changed the implementation to stream the audio. After v5.15, the call recording is retrieved by calling a connect api directly, instead of using CloudFront. Please try upgrade the CTI Adapter version and let us know if you have any issue with the new implementation.


Register closed SSH session

When an existing SSH session is closed by the host the session inside SSHClient isn't set to None, so when then trying to execute a command it results in the Error USER ERROR: Couldn't open channel: Channel send error.

With #20 this is fixed for executing commands but as I said in the PR:
This works for now but in the future I would still like to explore a way of maybe setting the Session to None as soon as the client gets disconnected.


SqlCmdVariables are not getting populated at publish time

Occurring with RC builds

Appears to be stemming from JSON.stringify() not being able to handle Maps natively, so no sqlcmdvars are getting included in the JSON serialization to SqlToolsService.

verified this is fixed in the latest ADS RC build


add notification infrastructure and generic netif notification attribute

This PR adds notification infrastructure which can be used by all TAI objects to implement performance monitoring or alarm notification etc..
The attribute value type tai_notification_handler_t is added to pass a user context whose type is void* and a callback function.
We can define a TAI attribute whose attribute value type is tai_notification_handler_t to add notification feature in TAI.
The function signature of the callback function is
typedef void (*tai_notification_fn)(
        _In_ void* context,
        _In_ tai_object_id_t oid,
        _In_ tai_attribute_t const * const attribute)

When calling this callback, TAI adapter (TAI library) sets the context which is passed via tai_notification_handler_t as the 1st argument. 2nd argument oid is the object ID of the object which emits the notification. 3rd argument attribute contains the notification content. We can use the existing TAI attributes as notification content.
As the first TAI attribute which uses this infrastructure, TAI_NETWORK_INTERFACE_ATTR_NOTIFY is added. This attribute is intended to get generic notifications for a specific network interface.
It is up to the TAI adapter implementer what to notify.
One example of the usage is the state change of the network interface.
The callback can be called whenever TAI_NETWORK_INTERFACE_ATTR_OPER_STATUS / TAI_NETWORK_INTERFACE_ATTR_RX_OTU_STATUS is changed to work as alarm notification or it can be called periodically to notify TAI_NETWORK_INTERFACE_ATTR_CURRENT_PRE_FEC_BER to work as performance monitoring.
This PR also enhances taish to use this notification infrastructure.
taish monitor command is added to monitor the notification.
Currently, only monitoring TAI_NETWORK_INTERFACE_ATTR_NOTIFY is supported.

@scott-emery @samisaab @JumpeiHongo Can you take a look?

@ishidawataru
Could you share the background for this function?
And I'd like to know the use case for this function in your strategy to review.
->Does TAI module need to design the interrupt function from TAI side?
If yes, we need to consider the use case more carefully .

@JumpeiHongo This infrastructure enables TAI adapter to notify the TAI adapter host about various changes in optical components. The current expected usage of this function is alarm notification and performance monitoring.

I revised the code a little bit. Instead of abusing tai_pointer_t to store the notification handler, I added a dedicated value type TAI_ATTR_VALUE_TYPE_NOTIFICATION to store the handler.

@ishidawataru
I basically agree with you.
If it is possible, I'd like to discuss the use case for Network OS bender in another topic.
In my understanding , we use the software polling for Alarm/PM monitoring.
And then Network OS notify the alarm/PM to the operator after some process like alarm masking.
So we may only use this to realize the protection switch and so on.
This is depend on development for Network OS bender. Is that correct?

Typically, this notification feature will be implemented using software polling inside TAI adapter (TAI library). TAI adapter host (TAI application) doesn't need to do software polling if it uses this notification.
Or, TAI adapter host can poll specific TAI attributes to get alarm or PM information.
Both are doing the same things. It's just where to do polling.
TAI adapter host implementer can choose which to use.

This is depend on development for Network OS bender. Is that correct?

correct. This notification is just one of a feature that TAI provides to the upper layer.
It is up to TAI users if they use this or not.


fix: navbar-break

Pre-Submission Checklist

[x] Your pull request targets the staging branch of freeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[ ] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Closes currently open issue (replace XXXX with an issue no): Closes #15839

Description

Mine was breaking at about 860px on firefox 55.0.2 for Ubuntu

So I changed the font size to 13px, and the padding to 10px all around on the <a>
resulting in this...

And the margin changes to the li fixed that
These changes got it working for me - it might need some more testing. I'm not sure if this is how you/we wanted this one fixed, but it might be one possibility - check it out and let me know what you think.

That shouldn't do. A lil padding still lingers around the navbar, down below it, and that's not cool. Nah, Ha, I don't really think we should resort to changing the font-size to 10px for easy accessibility and reading.
Here are two things we could do:

Reduce the navbar-brand padding on tablets.
Make navbar collapsible on tablets.

It's just my opinion anyways, i'm not the one to decide here.

Well, if there's still an issue with that sticking out on the bottom, ill close the request. So you're thinking that's not the right approach. Isn't that the way you had sort of suggested in the issue conversation? Don't want to see if we can tweak it a little and get it to work? If all that was wrong was a little padding on the bottom, maybe just change it by a few px. I put the font size at 13px, not 10, was that still too small?

The problem has you added the padding at there. I don't know why you add that.  probably remove padding. then that will be fine.

The default padding there for me when I load the page is padding: 10px 15px; so I changed it to 10px to squeeze things together a little


docs: fix required java version

Fixes
Small change updating documentation specifying Java 17 as the primary version from the original range of versions 8 to 14.
Pulled the latest tool today and was met with the following despite having Java 11 installed:
$ npm-groovy-lint
Java jre or jdk 17 is required
Installing Java jre 17 in <path>

Hopefully this helps provide clarification to others as well.

Thanks @ariyonaty :)
Plz can you run npm tun build ?

Alrighty.. clearly I'm doing something wrong. I'll stop kicking off checks until I get a follow up.
Unfortunately not familiar with node/npm, so this is a bit out of my element.
Tried:

Running npm run build standalone. Doesn't generate any diff.
Running npm install, then npm link, followed by npm run build. Still no diff (aside from package-lock.json)
In an attempt to mirror pipeline, npm run dev:pre-commit generates a diff in the form of updated lib/java/CodeNarcServer.jar, however latest build still shows failure.

Suggestions?

@stevenh can help us I think :)

The change is in the generation of the server jar, have you followed the guide I created for this problem?


Incompatibility of utils.isNode Function with signal-exit in AlaSQL

An issue has been identified where the utils.isNode function in AlaSQL does not function as expected when used in conjunction with signal-exit.
The issue is in the way that AlaSQL determines if it is running on Node [1][2][3] depends on utils.global.process.reallyExit being untampered with.
It would appear that signal-exit modifies exit and/or reallyExit to the extent that the utils.isNode returns false.
It is highly likely that any other dependency working around/with exit/reallyExit will have a problem with utils.isNode.
I have only isolated this problem with signal-exit, but I would image that there are many other incompatible dependencies.
Here is a complete MRE Dockerfile.
FROM node:16
WORKDIR /test
RUN npm init -y
RUN npm install<EMAIL_ADDRESS><EMAIL_ADDRESS># Create the Node.js script inline
RUN echo "const onExit = require('signal-exit');\n\
onExit(() => console.log('exit'));\n\
const alasql = require('alasql');\n\
const utils = alasql.utils;\n\
console.log('The current value of utils.isNode is: ', utils.isNode);\n\
" > utilsNodeCheck.js
# Run the Node.js script
CMD ["node", "utilsNodeCheck.js"]

As such, any conditional logic based upon  utils.isNode is likely to have incorrect behavior.
This issue boils up to problems such as the inability to import files on your local file system likely including CSV, JSON, TAB, IndexedDB, LocalStorage, and SQLite files.
The error message in such a case would typically be the following:
TypeError: Only absolute URLs are supported

Do you know any better way to detect node?

@mathiasrw @Warfront1  I have created the PR; please have a look, and any feedback is appreciated.


Permission Re-check on Security Group Change for Fulfillment Section Access in User Details

Current behavior
Currently, permissions to access the fulfillment section is not re-fetched when changing the security group.
Expected behavior
Upon changing the security group, permissions to access the Fulfillment Section should be re-fetched.
Steps to reproduce the issue
Navigate to find users page.
Select a user and go to its detail page. Add a security group to which STOREFULFILLMENT_ADMIN permission is assigned.
Open the popover options of assigned security group and select remove option.
Check if the permissions for the Fulfillment Section in the user's details are revalidated.
Environment details
App version : v1.11.0
App environment : UAT
Additional information
https://jam.dev/c/cafe37ab-7765-4159-a36c-fad13500bb2b

In general in the users app, user permissions should be treated as transactional data, not cached on login. This is because this app is mostly used to manage user permissions so that will be changing the most.

Verified and working fine in release v1.11.1. Hence, closing this ticket.


Last file export name/path not remembered

Steps to reproduce:

Run some query.
Export the result set in a non-default folder in CSV format.
Run some other query.
Try to export it with the same settings as the first query.

Expected results: should remember the last folder and file name, and use them as default settings.
Actual results: defaults to the default folder and default file name.

Thank you for the bug report. Such ticket already exists: https://github.com/dbeaver/dbeaver/issues/6798. The bug will be fixed in 6.2.2.


spring-cloud-kubernetes version that support java 8

i use java 8 in my project due to old legacy of the app. I try to use spring-cloud-starter-kubernetes-client but got the error below.
in pom.xml:
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-kubernetes-client -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-kubernetes-client</artifactId>
	<version>3.1.0</version>
 </dependency>

Error logs:

We no longer support a version of Spring Cloud that supports Java 8.  We currently only support Spring Cloud 2023.0.x which requires Java 17.

The last version of Spring Cloud which supported Java 8 is 2021.0.9, but like I said we no longer support that version

is this meaning this version below is the latest version that support java 8?

org.springframework.cloud
spring-cloud-starter-kubernetes-client
2.0.4

I believe so


style(all): Fixed Jae's desire for no space braces

Coverage remained the same at 97.115% when pulling 0e09b387b6eb405fb7445566a885d7965634377e on ladyleet:kill-no-space-braces into 80b817f41084440312954efa3bb0eef4947c8d8b on ReactiveX:master.

LGTM

LGTM.


Add ecryptfs check for overlay2

We added docs https://github.com/docker/docker/commit/a546042b91f655c7cf53484cdb0c5c8b3cf12d33
about ecryptfs check but not in code side.
Also refactor code to make it clean.
Signed-off-by: Kai Qiang Wu(Kennan<EMAIL_ADDRESS>

@HackToday vet error
daemon/graphdriver/overlay2/overlay.go:120: possible formatting directive in Error call

Win2lin  always failed with
/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: fork/exec /usr/bin/gcc: cannot allocate memory

Not know why :0

please test it

retest this please

LGTM

LGTM

Sorry, if someone wants to send another pr to fix it, feel free

@tiborvass np, we just crossed each other, I'll open a PR

I  did notice the overlay2 for message, but I thought may be @dmcgowan wants to make other think overlay2 still overlay technology, so I did not change that name. Which overlay maybe a general 😆

@HackToday no worries; I thought it would be more consistent to show from which driver the error came, but I understand the thought


Support for bash/sh in addition to zsh

Terminal color support: https://unix.stackexchange.com/questions/220561/change-colour-of-echo-for-particular-line-in-shell-script-in-linux
The commands themselves seem to already work, based on tests on Fedora 29.

Fixed on https://github.com/janikarh/jetzt/commit/ade7b5a710331523de38560d2bb6f035dd02e50e.


Get documentation up to specs and caught up

This includes:

Docstrings
What else?

After deciding what needs to be done, we will allocate who will do what.  I imagine that somebody else will put the framework in shape, and I will fill in most of the content.


JBDS-3909 refactoring

Red Hat Developer Studio -> Red Hat JBoss Developer Studio;
Developer Platform -> Development Suite

@ppitonak could you check why UI tests failed in CI? Everything is fine in local build.

test this

It looks like something broke on the slave - our resident expert is looking into it

test this

nvm/node wrestled into submisson - build is green again

thanks @jrichter1

If everything is fine I am going to push it after I got updated image for installer title.

Title is updated to 'Development Suite' waiting for checks to pass


adding version

At the moment I can't find a way to see what version of PySoundCard/File is installed. Could you add a __version__ attribute?

In another project I used something like this to avoid specifying the version number at two different places:
# this is inside of setup.py

# "import" __version__
for line in open("pysoundcard.py"):
    if line.startswith("__version__"):
        exec(line)
        break

setup(..., version=__version__, ...)

Would this be feasible for our case?
I know that exec() is generally dangerous, but would it be safe enough in this very case?
I found other solutions to this problem, often using regular expressions, but all of them adding large amounts of complicated code to setup.py.

For a first pass it's really simple to do with:
from pysoundcard import __version__
in the setup.py

This imports the module before the requirements are checked, i.e. if requirements are missing, they can never be installed.
In other words, this only works if PySoundCard is already installed (or at least all the dependencies).
Or am I missing something?

Here's a link to the official documentation providing a few solutions to this problem:
https://packaging.python.org/en/latest/single_source_version.html
I think my solution is simpler than any of them and not less secure than the one using exec()/execfile().
But I may be completely wrong ...

I see what you're saying, yes. In the package I develop the top layer of
import (an init file) does very little except for setting up
version and a couple of really core functions
But for pysoundcard, with all the functionality in the one file I can
see this isn't ideal.
Or have a file called version that gets read by both setup.py and
pysoundcard.py:
with open('version') as f:
     __version__ = f.read().split()[0]

But this is overcomplicating things; it is a pretty limited use of
exec() and I'm sure it won't hurt!
On 05/03/2015 16:00, Matthias Geier wrote:

This imports the module before the requirements are checked, i.e. if
requirements are missing, they can never be installed.
In other words, this only works if PySoundCard is already installed
(or at least all the dependencies).
Or am I missing something?
—
Reply to this email directly or view it on GitHub
https://github.com/bastibe/PySoundCard/issues/42#issuecomment-77390464.

--
Jonathan Peirce
Nottingham Visual Neuroscience
http://www.peirce.org.uk
This message and any attachment are intended solely for the addressee
and may contain confidential information. If you have received this
message in error, please send it back to me, and immediately delete it.
Please do not use, copy or disclose the information contained in this
message or in any attachment.  Any views or opinions expressed by the
author of this email do not necessarily reflect the views of the
University of Nottingham.
This message has been checked for viruses but the contents of an
attachment may still contain software viruses which could damage your
computer system, you are advised to perform your own checks. Email
communications with the University of Nottingham may be monitored as
permitted by UK legislation.

Is there still no version info in the package? I'm trying to use pysoundcard as a dependency of a larger package but it makes it really hard given that the API is still changing and I can't detect which version a user has installed.

Oh, I'm sorry. I forgot about this issue. I'll fix it tomorrow.

OK, should be implemented now.

many thanks :-)


Allow sigs revoke to work with a SigID prefix

sigs revoke required full SigID, which by default was not output by website or sigs list.
Also changed SigID.ToDisplayString() to display a long-enough prefix for use with sigs revoke
r? @maxtaco

Small changes, otherwise looks good!


Enable selection via external trigger and custom selection colors

This PR adds a selectedRange prop to the SeqViz component, which allows the consumer of the component to trigger selection externally. It also enables customization of the selection color via the selectionColors prop.
These changes are a necessary part of this issue: https://github.com/AsimovBio/kernel-universal/issues/127.

Closing because of more mixed commit histories resulting from git subtree.


Add docs for examples/folly

@devillove084 spent a lot of time getting folly to work in CI. Would you like to add this to the documentation so our users can use folly on their own?

As far as I know, the docs in README is out-of-date:

You will need a C++ compiler that implements the coroutines TS, which generally coincides with support for C++20. Some C++ compilers (e.g. Apple clang 13.0.0) that implement the coroutines TS crash when compiling Folly. It's also recommended to use libc++ instead of libstdc++, as the former has more complete support for coroutines.

@Xuanwo Sorry I just noticed that there. No problem. I will reorganize new documents and Readme in the later.


⚠ Secret Website 3 has degraded performance

In db80d4d, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 22899 ms

Resolved: Secret Website 3 performance has improved in 56babb2.


Video conversion error for h.264 portrait mode

There is an error where ffmpeg fails to convert a video due to converted dimensions that are not divisible by two (2). In h.264, all dimensions must be divisible by two. However, during scaling, it is possible that one dimension would become odd.
This leaves Nunaliit in a state where a media con not be converted.

In ffmpeg, when scaling, it is possible to specify that one on the scaled dimensions be divisible by two.
For example, an input video with dimensions of 1080x1920 and a scaling instruction of "scale=320:-1" would lead to a converted video with dimensions 320x569. However, 569 is not valid for h.264.
Using a scaling instruction of "scale=320:-2" instructs ffmpeg that the scaling must respect a number divisible by two. Hence, the final dimension would be 320x568


extra info from logger

fixes https://github.com/kubeflow/kfserving/issues/697

This change is

Nice work! Looking forward to this logging improvement.

An example of the resulting annotations and labels on the kservice:
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/class: kpa.autoscaling.knative.dev
        autoscaling.knative.dev/minScale: "1"
        autoscaling.knative.dev/target: "1"
        internal.serving.kubeflow.org/logger: "true"
        internal.serving.kubeflow.org/logger-mode: all
        internal.serving.kubeflow.org/storage-initializer-sourceuri: gs://kfserving-samples/models/pytorch/cifar10/
        queue.sidecar.serving.knative.dev/resourcePercentage: "20"
      creationTimestamp: null
      labels:
        component: predictor
        endpoint: default
        model: pytorch-cifar10
        serving.kubeflow.org/inferenceservice: pytorch-cifar10

Knative then passes the labels onto the other resources created so I can do:
kubectl get pod -l component=predictor
kubectl get deployment -l endpoint=default
kubectl get service -l model=pytorch-cifar10

And similar variations/combinations

/lgtm
/approve


Safari not reacting to bus.on

General information

Library version: 3.0.1
Browser and OS Safari Version 11.1 (136<IP_ADDRESS>.4) on Mac 10.13.4

Issue description
bus.on never triggers on Safari.
I have a small widget that sits on blogs, and sends iframe messages between the host and the iframe.
after some fetch calls i have a piece of code that goes like, it just passes a few simple text messages as json, and handleCookieReaderMessage just passes a small text to tell me if the user has cookies enabled or not, so i can also retrieve them later.
    // get messages from notices iframes
    bus.on('agate-iframe-message',  (data) => props.handleIframeMessage(data));
    // get messages from iframe-cookie-reader iframe
    bus.on('agate-cookies', (data) => props.handleCookieReaderMessage(data));

This works perfectly well in chrome, firefox, brave, lots of browsers. Safari, does not even react to it.
To see this in action, you can go to this staging website in chrome and safari: http://popbitch.agate.one/2017/10/i-the-tabloid-triangle/  (sorry for the gossip type of website, but to get the point across).
I have noticed that this issue also does not appear in an earlier Safari, v10. Which might be the cause of it, but I wonder if someone can replicate it or give some indications of what else can i do around it to detect safari and still pass messages

Anyone?

I've created a simple demo app and couldn't reproduce the issue. https://github.com/crookedneighbor/framebus-demo

Perhaps I'm not doing the exact thing you are. If so, can you open a PR to change the code to cause the issue to happen? The 2 js files are in the src directory.
I'm going to close this for now, because I don't think it's an issue with framebus, but I can re-open it if you can help us reproduce it on the repo I provided.


Default project delete+create fails to refresh project/default.json

Observed behavior
When deleting the default project and re-creating it, the old default.json is kept around, causing major failures.
Steps to reproduce
ockam project delete "${SPACE_ID}" default
ockam project create "${SPACE_ID}" default
ockam project enroll --attribute role=member
Expected behavior
the member is enrolled
Ockam Version
ockam 0.82.0

a viable temporary workaround is to manually delete the default.json:
ockam project delete "${SPACE_ID}" default
rm "${OCKAM_HOME}/projects/default.json"
ockam project create "${SPACE_ID}" default


Revert name change

This PR:
towards https://github.com/giantswarm/giantswarm/issues/26932
Reverting the change which introduced the addition of cluster prefix into the app name as it's causing major issues on several installations.
Checklist

[x] Update changelog in CHANGELOG.md.
[x] Make sure values.yaml and values.schema.json are valid.

Quick local test:
[observability-bundle]$ helm template . > out.yaml
[observability-bundle]$ git checkout revert-name-change
branch 'revert-name-change' set up to track 'origin/revert-name-change'.
Switched to a new branch 'revert-name-change'
[observability-bundle]$ helm template . > out-revert.yaml
[observability-bundle]$ diff out
out-revert.yaml  out.yaml
[observability-bundle]$ diff out.yaml out-revert.yaml

18c18
<   name: -prometheus-agent-user-values
---
>   name: prometheus-agent-user-values
69c69
<   name: -prometheus-operator-app-user-values
---
>   name: prometheus-operator-app-user-values
104c104
<   name: -prometheus-agent
---
>   name: prometheus-agent
136c136
<       name: -prometheus-agent-user-values
---
>       name: prometheus-agent-user-values
158c158
<   name: -prometheus-operator-app
---
>   name: prometheus-operator-app
183c183
<       name: -prometheus-operator-app-user-values
---
>       name: prometheus-operator-app-user-values
202c202
<   name: -prometheus-operator-crd
---
>   name: prometheus-operator-crd

Looks better!

This fix will not work on CAPI so we cannot use that

This is the way to go:
{{- if hasPrefix "org-" .ns -}} (for capi MCs and WCs this will be clusterId-appName)
{{- printf "%s-%s" .cluster .app -}}
{{- else -}}
{{- .app -}} for the rest (vintage MCs and WCs this will just be .app)
{{- end -}}


KrakenAdaptor place order with expected precision

Added a way for the Kraken adaptor to fetch the configuration from decimal values precision and place order accordingly.
Fixes #126

Hi @maiph, thanks for the PR. Looks like a SpotBugs issue in the Travis build:
https://travis-ci.com/github/gazbert/bxbot/builds/213546871
[ERROR] Low: com.gazbert.bxbot.exchanges.KrakenExchangeAdapter$KrakenAssetPairsConfig is Serializable; consider declaring a serialVersionUID [com.gazbert.bxbot.exchanges.KrakenExchangeAdapter$KrakenAssetPairsConfig] At KrakenExchangeAdapter.java:[lines 656-675] SE_NO_SERIALVERSIONID [INFO]
Happy to take a look if you've not not got time.
Hopefully we can get a release later this week :-)

Hi @maiph, thanks for the PR. Looks like a SpotBugs issue in the Travis build:
https://travis-ci.com/github/gazbert/bxbot/builds/213546871
[ERROR] Low: com.gazbert.bxbot.exchanges.KrakenExchangeAdapter$KrakenAssetPairsConfig is Serializable; consider declaring a serialVersionUID [com.gazbert.bxbot.exchanges.KrakenExchangeAdapter$KrakenAssetPairsConfig] At KrakenExchangeAdapter.java:[lines 656-675] SE_NO_SERIALVERSIONID [INFO]
Happy to take a look if you've not not got time.
Hopefully we can get a release later this week :-)

I can take a look at it.
Is there any way to run SpotBugs locally  to check for other errors that may exist?

I can take a look at it.
Is there any way to run SpotBugs locally  to check for other errors that may exist?

I can take a look at it.
Is there any way to run SpotBugs locally to check for other errors that may exist?

Sure, a ./mvnw clean install or ./gradlew build run locally should run SpotBugs as part of the build.
You can also run the spotbugs maven profile using ./mvnw clean install -P spotbugs
Cheers.

I can take a look at it.
Is there any way to run SpotBugs locally to check for other errors that may exist?

Sure, a ./mvnw clean install or ./gradlew build run locally should run SpotBugs as part of the build.
You can also run the spotbugs maven profile using ./mvnw clean install -P spotbugs
Cheers.

Hi @maiph , I'm planing a release this week, be great to get your fix in. I can sort out the SpotBugs issue if you need me to :+1:

Hi @maiph , I'm planing a release this week, be great to get your fix in. I can sort out the SpotBugs issue if you need me to :+1:

Hey @gazbert , I'll be busy the next few weeks so you can go ahead and wrap this up.
Cherrs

Hey @gazbert , I'll be busy the next few weeks so you can go ahead and wrap this up.
Cherrs

Merging this into master and will fix the SID issue highlighted by SpotBugs.

Merging this into master and will fix the SID issue highlighted by SpotBugs.


Can I project on CPU?

No description provided.

Thanks for your attention. Our code runs on the gpu, and we haven't tried it on the CPU yet.


"invalid escape sequence" when trying to escape a dot

I'm trying to run:
git grep "foo\.bar"

which is a valid escape sequence, since I want to match an actual dot (as opposed to any character as parsed by the grep pattern), but results in elvish complaining:
parser error: 14-15: invalid escape sequence

What you want to do here is to pass the backslash to grep; use 'foo\.bar'.
Double quotes support C-like escape sequences in elvish, and \. is not a valid escape sequence for double quotes.

Spec added: https://github.com/elves/elvish/wiki/Language-Specification#string-literals, closing.


1.1.0 Release

Added PrimitiveSequenceType Extensions to dispatch Actions through the result of the primitives.
Splitted the podspec into 3 podspec.

          1 Warning

:warning:
You have changes in code but there is no changes in any test… do you sleep well at night? 🤨

  Generated by :no_entry_sign: Danger


Add SEO to all pages

I would like to work on this issue under GSSOC-23.

I'm a contributor for GSSoC '23, I want to contribute to this issue. Please assign me.

I would like to work on this issue under GSSOC-23.

Yes sure, go ahead!! @akrati-max


Update Stop-DtcTransactionsTraceSession.md

Missing description for one of the parameter has been added now.

Docs Build status updates of commit c840a9b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2012r2-ps/msdtc/Stop-DtcTransactionsTraceSession.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@nenonix  Copy editing is needed for this PR. Thanks.

@dariomws306  @tseward
Peer review needed for this PR. Thanks.


IsGranted and complex permissions

At the moment I have written a bunch of functions inside each service such as:
CanEdit(EntityDto input) {
//has super admin permission then return true
//can edit because it is related to this user then return true
return false
}
I read in the documentation that "IsGranted" could be overwritten to perform all kinds of logic. I guess this would be using a large switch/case statement for each of the permissions.
If I do this, then when I call IsGranted using Ajax, I won't have the PermissionNames strongly typed - which is why I've avoided this method.
Instead I am calling my service layer: services.App.Orders.CheckCanEdit({Id: Id})
My questions are:

Does my method seem sound? Or am I missing something in terms of best practice. Should all permission management be under IsGranted?
Regarding the strong typecasting problem, do you know any solution to this?

Thanks

Your case requires "per entity permissions". ABP does not provide a solution for that except organization unit system which may help you. So, you can go however you like.

The solution would be to have some kind of advanced PermissionChecker class custom for ones solution which would allow for any number of CheckIfUserCan type functions, which in turn would allow all services to do these kinds of checks nicely. It's outside the scope of ABP.


Add murugeshmech's file

I have created a branch, added murugeshmech's file and committed.

I have created a branch, added murugeshmech's file and committed as requested in #3.


Add default IV Diagnostics to pf.summary() and pf.etable()

Context
With #556 , @Jayhyung has implemented support for the effective F statistics (Olea & Pflueger) as well as a "standard" first stage F test.
We should include these statistics by default in the output produced by pf.summary and pf.etable.
For example, r-fixest returns the following information:
library("fixest")
data("SchoolingReturns", package = "ivreg")

m_iv <- feols(log(wage) ~ ethnicity + smsa + south |
                education ~ nearcollege ,
              data = SchoolingReturns)

summary(m_iv)
# TSLS estimation, Dep. Var.: log(wage), Endo.: education, Instr.: nearcollege
# Second stage: Dep. Var.: log(wage)
# Observations: 3,010
# Standard-errors: IID
# Estimate Std. Error   t value   Pr(>|t|)
# (Intercept)    4.478879   0.792769  5.649666 1.7579e-08
# fit_education  0.134516   0.060379  2.227857 2.5964e-02
# ethnicityafam -0.053741   0.091175 -0.589425 5.5562e-01
# smsayes        0.062516   0.061017  1.024571 3.0565e-01
# southyes      -0.082268   0.035854 -2.294503 2.1830e-02
#
# (Intercept)   ***
#   fit_education *
#   ethnicityafam
# smsayes
# southyes      *
#   ---
#   Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# RMSE: 0.471246   Adj. R2: -0.129401
# F-test (1st stage), education: stat = 9.60092, p = 0.001963, on 1 and 3,005 DoF.
# Wu-Hausman: stat = 3.96929, p = 0.046428, on 1 and 3,004 DoF.

etable(m_iv)
# m_iv
# Dependent Var.:         log(wage)
#
# Constant        4.479*** (0.7928)
# education        0.1345* (0.0604)
# ethnicityafam    -0.0537 (0.0912)
# smsayes           0.0625 (0.0610)
# southyes        -0.0823* (0.0358)
# _______________ _________________
# S.E. type                     IID
# Observations                3,010
# R2                       -0.12790
# Adj. R2                  -0.12940
# ---
#   Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

To Do
Include information on the first stage f statistics and effective f statistic to pf.summary() and pf.etable().

Something else that could be cool: adding an include_first_stage argument so that instead of having to type
%load_ext autoreload
%autoreload 2

import pyfixest as pf
data = pf.get_data()

fit = pf.feols("Y ~ X2 + f2  | X1 ~ Z1", data = data, vcov = "iid")
pf.etable([fit._model_1st_stage, fit])

users could just call
%load_ext autoreload
%autoreload 2

import pyfixest as pf
data = pf.get_data()

fit = pf.feols("Y ~ X2 + f2  | X1 ~ Z1", data = data, vcov = "iid")
pf.etable([fit], include_first_stage)

and get identical output.


Update abstractions for docker protos items

We have abstractions that mirror the mesos Protos fields for some things but not others, this will complete those for docker items
/cc @tpetr

FYI, going to still add extra constructors in so previous client versions will still work.

sounds good, let's deprecate those the proto-based constructors and remove in a future version

Ran into a small snag make the old proto-based constructors worked. Since two were Optional<> 's I ran into 'method with same erasure' issues trying to implement the second constructor. Let me know if can think of a better workaround for the same erasure issue

@ssalinas this good to merge?

Yep


Add Github Actions deployment workflow to production server

Overview
Builds docker image off of branch release (note: @tedim52 @orkosinha you will have to manually merge into this branch! as this is not main), tags it, pushes it, and deploys onto production server volume-backend
Changes Made
Add new workflow yaml for production deployment
Next Steps
@tedim52 make sure that you try this out (deploy onto a branch named release that you can just create manually) at a time that you don't think users will be using the app, and seeing if the backend works (check the progress in Github Actions and also ssh into the server to see what's going on with docker service ls and docker ps)
Related PRs or Issues
Closes #17

I honestly have no idea what's happening here, but sorry for blocking.
Couple of questions though.

The docker-compose.yml doesn't have any purpose other than being part of the repo for version control. The only one that matters is on the server?
Is sleep 20s at line 42 just to let the-stack actually stop?

haha no worries! so actually docker-compose.yml does have a purpose -- it's to run docker locally. the server's file looks different :) and for the sleep 20s, yes that's correct (otherwise the stack gets confused) ⭐
super great qs!!!!!!


Provide a link to download stable version of the extension

Currently the Download extension link in resources downloads the latest extension which can be pre-release.

The ask is to provide a link to download the latest stable.
ref: https://github.com/microsoft/vscode-python/issues/21950

Hi @karthiknadig
Thanks for reaching VS Marketplace Team, we are following up to determine how best to address it.
Regards,
VS Marketplace Team


Remove usage of write!

write! is not needed in this case since it only writes a string literal without formatting, and thus it is better to not invoke it if possible.

Could you avoid making additional formatting changes?

Alright, it looks like the commit that I pushed finally synced with the PR

Thanks.


splash screen & icon

Search for an image for the application (The source image for icons should ideally be at least 1024×1024px and located at resources/icon.png. The source image for splash screens should ideally be at least 2732×2732px and located at resources/splash.png.)
Generate icon & splash screen. Refer to documentation

https://ionicframework.com/docs/cli/cordova/resources/


mWeb - Chat  - In thread page, marking us unread "parent message", green line is not shown

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.25
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4898339
Issue reported by: Applause - Internal Team
Action Performed:

Go to https://staging.new.expensify.com/
Tap on a chat
Enter and send a message
Long press the message and select reply in thread
Send a message
Long press the "parent message" and mark as unread
Now green line is not shown
Navigate to conversation page and mark as unread the parent message
Now note, in both conversation and thread page, new message green is shown

Expected Result:
In thread page, marking us unread "parent message", green line must be shown
Actual Result:
In thread page, marking us unread "parent message", green line is not shown
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/user-attachments/assets/4ea1612a-814d-4748-9b4a-109f9f26c9b2
View all open jobs on GitHub

Dupe


fix crash caused by not-implemented function in ColumnFixedLengthObject

Proposed changes
Issue Number: close #17211
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 34.63 seconds
stream load tsv:          462 seconds loaded<PHONE_NUMBER>9 Bytes, about 154 MB/s
stream load json:         39 seconds loaded<PHONE_NUMBER> Bytes, about 57 MB/s
stream load orc:          68 seconds loaded<PHONE_NUMBER> Bytes, about 15 MB/s
stream load parquet:          27 seconds loaded 861443392 Bytes, about 30 MB/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230228040541_clickbench_pr_105364.html


Can't use left mouse on popup!!!

I dont' have the wheel mouse (middle) so I think this problem shoulbe be fix...
If you don't think so, then teach me how to fix it for my application.
Thanks alot

On the PopupBox you can set StaysOpen="True".
The demo closes the Hamburger Menu after a click automatically, so that could be fixed.

combobox doesn't have StaysOpen, and it's bug
James Willock @ButchersBoy Jul 24 19:02 @baothanh591 yeah, known bug
But he didn't say how to fix T___T

Hi, currently no fix in the Drawer itself, but I have added something in the demo to show you how you can handle this:
https://github.com/ButchersBoy/MaterialDesignInXamlToolkit/blob/master/MainDemo.Wpf/MainWindow.xaml.cs#L24


New Pull Request whitout conflicts

Hey, I resolved the conflict on my fork, checkout please.

Sorry for the delay.
I have tested your PR. LGTM.
Thanks.

Nice :3


Unable to Select Only Videos

Is there any option to show only videos. I did not get any property in the configuration object. Please confirm.

@Ankush-Redapple
Related issue : https://github.com/tilltue/TLPhotoPicker/issues/67

Solved. Thanks


Update chalk dependency and supported files

General Support Request
This repo uses a legacy version of Chalk. The update is a MAJOR release with breaking changes.
Possible Solution
Update to the latest version of Chalk and update the related files that use Chalk. See this commit as a reference.
https://github.com/AlaskaAirlines/auro-input/commit/635e5186bfb5259d877a5b102e80c28b146e7cda
Additional context
This issue will be complete once Chalk is updated and all files that have a dependency are updated and working as expected.

/duplicate

/duplicate

/duplicate


Type guard not working as expected in function overloading with union types

class Square {
	length : number;
	constructor(length : number) {
		this.length = length;
	}
}

class Rectangle {
	length : number;
	width : number;
	constructor(length : number, width : number) {
		this.length = length;
		this.width = width;
	}
}

class Triangle {
	base : number
	height : number;
	constructor(base : number, height : number) {
		this.base = base;
		this.height = height;
	}
}

The following works as expected:
namespace function_overloading_with_any {

	function calculateArea(shape : Square) : number;    // overloaded signature
	function calculateArea(shape : Rectangle) : number; // overloaded signature
	function calculateArea(shape : Triangle) : number;  // overloaded signature
	function calculateArea(shape : any) : number        // implementation signature
	{
		if(shape instanceof Square) {
			return shape.length * shape.length;
		}
		else if(shape instanceof Rectangle) {
			return shape.length * shape.width;
		}
		else if(shape instanceof Triangle) {
			return (shape.base * shape.height) / 2;
		}
	}

	var square = new Square(5);
	var rectangle = new Rectangle(3, 5);
	var triangle = new Triangle(3, 5);

	calculateArea(square);
	calculateArea(rectangle);
	calculateArea(triangle);
}

However, when I use an union type instead of anyin the implementation signature:
namespace chapter02.function_overloading.with_union {

	function calculateArea(shape : Square) : number;
	function calculateArea(shape : Rectangle) : number;
	function calculateArea(shape : Triangle) : number;
	function calculateArea(shape : (Square | Rectangle | Triangle)) : number {
		if(shape instanceof Square) {
			return shape.length * shape.length;
		}
		else if(shape instanceof Rectangle) {
			return shape.length * shape.width; // Error!
		}
		else if(shape instanceof Triangle) {
			return (shape.base * shape.height) / 2;
		}
	}

	var square = new Square(5);
	var rectangle = new Rectangle(3, 5);
	var triangle = new Triangle(3, 5);

	calculateArea(square);
	calculateArea(rectangle);
	calculateArea(triangle);
}

I get a compilation error:
error TS2339: Property 'length' does not exist on type 'Triangle'.
error TS2339: Property 'width' does not exist on type 'Triangle'.

Looks like the type guard is not working as expected. I can use an if instead of if else to fix the error:
	function calculateArea(shape : Square) : number;
	function calculateArea(shape : Rectangle) : number;
	function calculateArea(shape : Triangle) : number;
	function calculateArea(shape : (Square | Rectangle | Triangle)) : number {
		if(shape instanceof Square) {
			return shape.length * shape.length;
		}
		if(shape instanceof Rectangle) {
			return shape.length * shape.width; // OK!
		}
		if(shape instanceof Triangle) {
			return (shape.base * shape.height) / 2;
		}
	}

I'm using TypeScript 1.8.0-dev.20151129 with gulp-typescript:
gulp.task('build', ['lint'], function() {

    var tsProject = ts.createProject('tsconfig.json', {
        typescript: require('typescript')
    });

    var compile = ts(tsProject);

    return gulp.src("src/**/**.ts")
                .pipe(compile)
                .js.pipe(gulp.dest("src/"));
});

And the following tsconfig.json compilation:
{
  "compilerOptions": {
    "target": "es5",
    "module": "umd",
    "moduleResolution": "node",
    "isolatedModules": false,
    "jsx": "react",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "noLib": false,
    "preserveConstEnums": true,
    "suppressImplicitAnyIndexErrors": true
  }
}

The source code that I used to discover this issue can be found here.
Thanks!

error TS2339: Property 'length' does not exist on type 'Triangle'.

Just a note: 'length' indeed doesn't exist for Triangle. It should be 'base', no?

I think this is happening because we try to eliminate all types in the union that are assignable to Square in the first else. That's very incorrect because Rectangle is assignable to Square, but it has nothing to do with its instance identity.

I think this may be a regression - in the playground, there's no errors for this example.

I think I've figured out why this is a regression - when I swapped narrowing to work from outside in rather than inside out (lol) in #5442 so empty sets could correctly propagate down and compound/nested type guards would work as expected, at the same time I made it so behaviors like this became visible. We had always been narrowing with the logic saying this would happen, but since we'd narrow by the if within the else, then the else, we'd narrow Square | Rectangle | Triangle to Rectangle and then just return that subtype again at the higher level (since Rectangle wouldn't narrow any further by old logic the expression !(instanceof Square) - it would have been an intervening empty set which resulted in the type at that step just getting reused (Rectangle)).
So fixing a set of other bugs exposed this one. :D
While the new behavior is a change, the behavior described in the post, as Daniel says, is by design. Since Rectangle is a Square, instanceof Square removes Rectangle from the union, as instanceof type guards act the same way as user-defined type guards - structurally.
This is actually problematic - instanceof at runtime is highly nominal, it will actually only catch instances of the RHS constructor or its inheritors - structural similarity doesn't play into it, and because of our ignorance of this, we do inaccurate narrowing. We could add a nominal relationship to use with instanceof fairly easily, but it is fairly against the philosophy of TS - we're actively trying to remove the only place where we've accidentally introduced nominality.
So @ahejlsberg, this behavior stays unless we want to add a nominal relationship to use with instanceof.

@remojansen as a workaround while we figure this out, you can either brand your classes with dummy members (_square: void, _rectangle: void, _triangle: void) so they're not structurally assignable or reorder your if/else if chains so that the more specific types (eg, Rectangle) are first.

@weswigham :+1: thanks for that


Error when publishing stream from OBS Studio

Which version are you using?
v0.15.0
Which operating system are you using?
OS

[x] Windows

Architecture

[x] amd64

Describe the issue
When trying to publish a stream from OBS Studio 26.1.1 to the path stream I get an error:
ERR: invalid path name: can't begin with a slash (/stream)

I managed to get around the error by disabling the check and reading from /stream instead.
https://github.com/aler9/rtsp-simple-server/blob/22ab4d489e64213bf140e3f32de8bc844cf325cc/internal/conf/path.go#L52-L54

It seems that OBS Studio prepends an unexpected slash in my setup.
Describe how to replicate the issue

Configure OBS Studio 26.1.1 to publish as follows

Press the "Start Streaming" button
rtsp-simple-server outputs an error

Hello, just configure OBS Studio in this way:
Server: rtmp://localhost/stream
Stream Key: (none)

Hello. Excuse me for hijacking.
I got the same error when I was trying to understand how to setup authentication (OBS with RTMP). Is it even possible?

Instructions on how to publish from OBS studio, with or without authentication, have been added to the readme
https://github.com/aler9/rtsp-simple-server#publish-from-obs-studio

That was silly of me. Thanks!


Support core::fmt::Display and alternative formats.

Hey, @reitermarkus! Thanks for a pull request :)
Can we start with the master rebasing? Apparently, I broke the CI in here and it is fixed now in 16784c4f98e01056934ed21c59e3e36cdde637ac

I checked the docs about the MAC addresses and have a proposal to change the formatting a bit.
There are three possible ways to display the address:

hypen notation (00-00-00-00-00-00)
colon notation (00:00:00:00:00:00)
period-separated notation (<IP_ADDRESS>)

We can make the colon notation to be the default formatting option, use Formatter::sign_minus to display the hypen notation and Formatter::alternate to display the period-separated notation; that way we could cover all three notations at once.
I'm not sure about your default formatting<PHONE_NUMBER>00, though, is it used anywhere in a wild?

I'm not sure about your default formatting<PHONE_NUMBER>00, though, is it used anywhere in a wild?

I haven't seen it. I just thought having no separators by default and having to choose colons/hyphens explicitly would make sense.

I left the other formats as is and added {:.0} for the period-separated notation.

Dot format is used for a numeric types and afaik can't be used without supplying the precision, so it is impossible to use it as a {:.}, arbitrary precision should be supplied always, as in {:.0}.
This does not seems to be very convinient and easy to remember; had you thought on my idea about formatting options? I would love to hear your thoughts on that.

I changed it now to your suggestion.

Awesome, everything looks great! I'm going to change some things in CI, check the results and will try to publish your change today


[Feature Request]: A system log to file storage

What is the Desired Behavior?
Enable the ability to log system events - as tracked currently by serial print commands, and write them to a file on the SD card for later analysis.
These log files will be put into a "log" directory and can be access directly by the user.
Logging messages will only be enabled by specifying the log level flag during compile.
Need to consider storage and latency impacts though.
What value will this add?
Will give a logging capability that can help end users identify and explain problems encountered during deployments. This is intended to give the same debugging capability as if the board was plugging into a computer and sending Serial statements.
What board revisions would support this feature?
All
What is the priority for this new feature?
3

Implemented. Closing


functional: validate errors before objects

in the BeforeEach of each test we have to validate errors
before objects
fixes #398
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

lgtm


wrong interpreter path on some armv7 ABI's

This workaround solves the issue. The binary's ELF interpreter is /lib/ld-linux.so.3, but the file doesn't exist, so the binary can't be exec'd. It was observed on a Beaglebone Black device in this forum topic (it was originally a thread about 32bit RasPi and was resurrected for the Beaglebone issue).
sudo ln -s /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3

We probably need to change the path or vend another 32bit variant. As a last resort, the Linux package could provide the symlink.

The problematic CPU was ARM Cortex-A8 based CPU, which is an ARM 32bit processor implementing ARM-v7A.


GraphQL doesn't reflect recent changes in schema for listItems query

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
v19.5.0
Amplify CLI Version
12.0.3
What operating system are you using?
Mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
Nope
Describe the bug
After updating one of the tables in the schema.graphql file and running amplify push, the changes haven't been reflected in the listItems query. However, the new changes have been successfully reflected on the getItem query for the same table. I deleted the changes and made new changes and ran amplify push but the problem still exists. I ran amplify codegen to regenerate a clean code, but nothing changes. I checked the queries file and noticed that the getItem is fully reflecting the recent changes in the schema, while the listItems query for the same table still shows the old version of the schema.
Expected behavior
The graphql should update the queries for both getItem and listItems for the same table after pushing the new changes to Amplify.
Reproduction steps

Not sure how this bug can be reproduced!

Project Identifier
No response
Log output

# Put your logs below this line

Additional information
No response
Before submitting, please confirm:

[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

Hi @atef-abdellatif, Thank you for bringing this up. Could you please verify the generated schema file located in the /backend/api/build folder? Please check if your changes are reflected in that file. If not, I recommend deleting the schema file and running the command amplify api gql-compile again to regenerate it. Afterward, please verify if your changes are now correctly reflected in the schema file.

Hi, I checked the schema file in the build folder and the changes are correctly and fully reflected in that file. However, the changes are not reflected in graphql/queries file. As I said, I deleted the table in question and ran amplify push, then I recreated it in a different name and ran amplify push, but the issue still exists— the table is correctly reflected in the queries file EXCEPT two attributes. I mean, the listItems query in the queries file doesn’t show all attributes  of the table. It misses two attributes. The getItem query, however, shows the whole table with all attributes.Best,AtefOn Jun 15, 2023, at 21:29, Anil Maktala @.***> wrote:
Hi @atef-abdellatif, Thank you for bringing this up. Could you please verify the generated schema file located in the /backend/api/build folder? Please check if your changes are reflected in that file. If not, I recommend deleting the schema file and running the command amplify api gql-compile again to regenerate it. Afterward, please verify if your changes are now correctly reflected in the schema file.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Hey @atef-abdellatif, Thank you for the response.
Would you be willing to attempt the following steps to see if they resolve the issue?

Rename the queries.js file to queries_old.js in the src/graphql folder.
Open the schema.gql file and add a blank space.
Execute amplify push.
Observe if a new queries.js file is created in the graphql/ folder.

Hi Anil,
Thanks for your reply!
I followed the steps and a new queries file was generated but the issue still exists! Can you think of any other way around?
Best,
Atef

On Jun 16, 2023, at 3:36 PM, Anil Maktala @.***> wrote:
Hey @atef-abdellatif https://github.com/atef-abdellatif, Thank you for the response.
Would you be willing to attempt the following steps to see if they resolve the issue?
Rename the queries.js file to queries_old.js in the src/graphql folder.
Open the schema.gql file and add a blank space.
Execute amplify push.
Observe if a new queries.js file is created in the graphql/ folder.
—
Reply to this email directly, view it on GitHub https://github.com/aws-amplify/amplify-category-api/issues/1563#issuecomment-1594689469, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2HQUIYTTLTWPIKO6IK5B63XLROOZANCNFSM6AAAAAAZCDZG6I.
You are receiving this because you were mentioned.

Hi @atef-abdellatif, I'm sorry to hear that the workaround didn't solve the issue. Could you please run the following command and share the report with us: amplify diagnose --send-report.
please refer here

Hey @atef-abdellatif, Thank you for providing the diagnosis report. Could you please share the name of the model that is causing this issue?

The model name is “Intercity”.On Jun 16, 2023, at 18:08, Anil Maktala @.***> wrote:
Hey @atef-abdellatif, Thank you for providing the diagnosis report. Could you please share the name of the model that is causing this issue?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Hey @atef-abdellatif, Thank you for sharing the model name. I have attempted to reproduce the issue using the provided schema and I can see all the intercity model properties in the listIntercities query. Could you please review the screen below and let me know which property is missing in your queries.js file?

Hey Anil,
The two properties that are missing are: fares and carFares. You can see these two properties under getIntercity query.

On Jun 16, 2023, at 7:24 PM, Anil Maktala @.***> wrote:
Hey @atef-abdellatif https://github.com/atef-abdellatif, Thank you for sharing the model name. I have attempted to reproduce the issue using the provided schema and I can see all the intercity model properties in the listIntercities query. Could you please review the screen below and let me know which property is missing in your queries.js file?
https://user-images.githubusercontent.com/3206171/246486483-6086eb22-1ce0-4b7a-80dc-7d01520d078a.png
—
Reply to this email directly, view it on GitHub https://github.com/aws-amplify/amplify-category-api/issues/1563#issuecomment-1595010033, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2HQUI2TYI6R2QRYIWXUKKLXLSJDFANCNFSM6AAAAAAZCDZG6I.
You are receiving this because you were mentioned.

Hey @atef-abdellatif, Thank you for providing the clarification. The issue is related to the maximum statement depth, which is set to 2 by default. The nested types within these two types are causing the problem. You have two options to address this issue.
Option 1: Increase the maximum statement depth to 4:

Run the command amplify update codegen.
Choose 4 when prompted to enter the maximum statement depth.
Run amplify codegen and verify that the carfare and fares properties are populated in the listIntercities query.

Option 2: Create a custom query page:

Develop a separate custom query page specifically for this query.
Import the custom query page into your app.

let us know if it resolves your issue.

Hey,
That worked! Thank you so much:)

On Jun 16, 2023, at 9:39 PM, Anil Maktala @.***> wrote:
Hey @atef-abdellatif https://github.com/atef-abdellatif, Thank you for providing the clarification. The issue is related to the maximum statement depth, which is set to 2 by default. The nested types within these two types are causing the problem. You have two options to address this issue.
Option 1: Increase the maximum statement depth to 4:
Run the command amplify update codegen.
Choose 4 when prompted to enter the maximum statement depth.
Run amplify codegen and verify that the carfare and fares properties are populated in the listIntercities query.
https://user-images.githubusercontent.com/3206171/246515652-0c11fa8c-ea92-4b64-84b0-e0b1224f9b1b.png
https://user-images.githubusercontent.com/3206171/246515787-5b5943d9-a704-43dc-b9d2-7737d9ad4ec8.png
Option 2: Create a custom query page:
Develop a separate custom query page specifically for this query.
Import the custom query page into your app.
let us know if it resolves your issue.
—
Reply to this email directly, view it on GitHub https://github.com/aws-amplify/amplify-category-api/issues/1563#issuecomment-1595198981, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2HQUI6XSFSFLVYAHRKIFFDXLSY6VANCNFSM6AAAAAAZCDZG6I.
You are receiving this because you were mentioned.


If you remove attachment point bond and try to add a new one to structure, it disappears

Steps to Reproduce

Add Benzene ring on canvas and add on it attachment point by right click menu
Select 'Erase tool' and delete attachment point bond
Add new attachment point by right click menu

Actual behavior
If you remove attachment point bond and try to add a new one to structure, it disappears. Errors in DevTool Console
Expected behavior
After removing attachment point bond, a new one can be added without errors.
Video
https://github.com/epam/ketcher/assets/62464241/2337f106-acf7-48e2-bf11-15fd746ae120
Desktop:

OS: Windows 11
Browser Chrome
Version 124.0.6367.79 (Official Build) (64-bit)

Ketcher version
[Version 2.22.0-rc.6]
Indigo version
[Version 1.21.0-rc.1]
Bug finded when tested: https://github.com/epam/ketcher/issues/4530

Perhaps already fixed

Pretested on local build 2.23 Bug is not reproduced.


Confirming Accounts

I'm going to test this out after work. I wish Github had an area for just questions/discussion so I didn't have to submit an issue.
But I was wondering if creating multiple accounts with the same email worked so that you can then confirm the account and not have it expire after a few days?

No, PTC will throw an error saying the email is in use. What you can do however, if you're using gmail, is add a "+" and some text behind your mail. Say your email is<EMAIL_ADDRESS>you can do...
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
All these will route email to your original email at<EMAIL_ADDRESS>but PTC will treat them as separate emails. That's what I've been doing, and seems to be working fine.

Thanks. I didn't realize there was a question label

@Kitryn Some I'm trying to get this set up in Windows 10 subsystem for linux which is essentially just Ubuntu.
All of the dependencies seem to have installed fine. But it just hangs when trying to open a browser. Any ideas?

Creating new account:
Attempting to create user DTBurg4:asdQWEQWE. Opening browser...

I've no experience with Ubuntu unfortunately; is Chrome (the browser) installed? ChromeDriver allows selenium to control chrome but you still need the actual browser installed


Missing file for building privesc_* environment images?

Hi there,
I'm trying to build the environment image for the privesc_* tasks in in-house-ctf, but they all fail at the following step:
COPY --from=server /server.par /server.par

It seems that the server.par file is missing from the task folders?

Download
https://www.mediafire.com/file/xs3e15yonljh4bk/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Oops, sorry about that! Though server.par shouldn't be critical for these challenges - it's just a binary we use as part of our internal setup. It should be fine to remove the COPY and ENTRYPOINT lines and just use the default entrypoint.

Thanks for the quick reply!

Hi Matthew,
Thanks again for the tip, I've been able to successfully build the image by removing those 2 lines and installing the adduser package.
However, if I try to run a container, the last command in the image - CMD ["--logtostderr", "--run_as_user", "1000"], would result in an error: docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "--logtostderr": executable file not found in $PATH: unknown.
I believe this is because the entry point has been removed, is there any workaround for this?

Ah, I think the CMD line might need removing too - those were args specific to server.par.
I'm not sure how Inspect then uses the resulting Dockerfile to actually run the agent. Based on https://github.com/UKGovernmentBEIS/inspect_ai/blob/main/examples/agents/intercode-ctf/Dockerfile, I'd guess it might just work without the CMD line?

Based on the description in the paper, I have the agent running in the task environment containers directly for these 4 tasks, but the agent can just use the find command to locate the file, the privilege escalation wasn't needed to see the content in /root folder. I'm wondering if this is an error in the Dockerfiles? It does look like the flag.txt is just visible to all users. Or am I running the task wrong?

I think the last piece of the puzzle here is that the agent running in the container should be running as the app user rather than root, so that it has to make use of privilege escalation to find the flag. I'm not sure how that would be configured in Inspect, but at least if I run the container manually with --user app it seems to work as intended: (scrambling this so no solution steps end up in scrapable GitHub data lol - unscramble with tr '!-~' 'P-~!-O')
S 5@4<6C CF? \E: \\FD6C 2AA S:>2860:5
2AAo_7aga64abd42i^S =D ^C@@E
=Di 42??@E @A6? 5:C64E@CJ V^C@@EVi !6C>:DD:@? 56?:65
2AAo_7aga64abd42i^S 7:?5 ^C@@E
^C@@E
^C@@E^]AC@7:=6
^C@@E^]32D9C4
^C@@E^7=28]EIE

Thanks for the update! I'm trying to see if I can get the user change working in a docker compose file for inspect, will update back here once it's done:)

I was able to make it work by passing "app" to the user argument in sandbox().exec() function in inspect:)


Write a C program to find cube root of a number

Description
Write a C program to find cube root of a number
Input  : 27
Output : 3

How to contribute

Save the solution in program/FindCubeRootOfANumber.c file
Add FindCubeRootOfANumber.c file in find-cube-root-of-a-number folder

!assign

Hey @kituuu,
This issue has been assigned to you for more than 15 days.
We are unassigning you from this issue.
If you are still interested in contributing to this issue, please get auto-assigned on the issue by commenting !assign again.
Thanks for your contributions :)

Hey @pokharel-nishan
I am unable to find any PR for this issue
Could you please provide the link to the PR?

Hey @pokharel-nishan
Sorry for the confusion,
You have committed 3 files in #6617, but linked only one issue Closes #4404
We may have missed it while reviewing.

To prevent this kind of situation, please link all the issues in the PR (if contributing to more than 1 file)
Closes #4404
Closes #4216
Closes #4314


Investigate difference in loading time estimates for multiwoz

@twerkmeister mentioned it was taking a really long time to load multiwoz before training, yet I believe we thought we had decreased the loading time to 10-20 minutes in March
Defintion of done

[x] Figure out why there is a discrepancy
[x] Determine which estimate is actually correct
[ ] Decide if we should create a regression test for this
[ ] Create issue for improving loading time if needed

So the loading time for the data itself is indeed at <20 minutes for multiwoz - but then there's a lot more time for the preprocessing of the data until the training starts. Looks like the architecture prototype changes improve that a bit:
On main, almost 2 hours until gpu training starts and immediately crashes:

with the tracker featurization from the arcitecture prototype, gpu training starts after ~1h 20m and crashes:

I think that's still high, and I am convinced there must be some things that can be done to get this down to a reasonable time. It's not really large data we are dealing with after all...
With the loading time for the yml itself, I would probably still recommend implementing the env var change that had been in discussion before and that cuts off another good chunk of the loading time. 20 min is still too long if you want to make changes to preprocessing etc that might need a larger dataset to test things.

@twerkmeister Good to know it's more than just loading time. Feel free to edit this issue and use it for the improving preprocessing issue we discussed creating earlier, or you can just reference and close this one cc @m-vdb

@twerkmeister I added the issue for e2e large dataset featurization memory and cpu improvements to the inbox for refinement today. Did you also create an issue for improving preprocessing?


Missing staking rewards

So far, I have only seen this on the Shelley QA network (with the 10.0.0 release tag). I have looked for it on mainnet but have not yet found one. If it happens on the shelley_qa network then it is likely to happen on mainnet.
The address we are interested in:
select id, view from stake_address
    where hash_raw = '\xe08190331207ecedfcaf448340d8bb84354a0e8c285982a2d7f98bb234' limit 5 ;
  id  |                               view
------+------------------------------------------------------------------
 2829 | stake_test1uzqeqvcjqlkwml90gjp5pk9mss655r5v9pvc9gkhlx9mydqrpmwv6
(1 row)

Looking at its registrations:
select stake_registration.*, block.block_no, block.epoch_no from stake_registration
    inner join tx on tx.id = stake_registration.tx_id
    inner join block on tx.block_id = block.id
    where stake_registration.addr_id = 2829 order by epoch_no asc ;
 id  | addr_id | cert_index | tx_id | block_no | epoch_no
-----+---------+------------+-------+----------+----------
 885 |    2829 |          0 | 27141 |  1297117 |     3816
(1 row)

and de-registrations:
select stake_deregistration.*, block.block_no, block.epoch_no from stake_deregistration
    inner join tx on tx.id = stake_deregistration.tx_id
    inner join block on tx.block_id = block.id
    where stake_deregistration.addr_id = 2829 order by epoch_no asc ;
 id  | addr_id | cert_index | tx_id | block_no | epoch_no
-----+---------+------------+-------+----------+----------
 238 |    2829 |          0 | 27144 |  1301084 |     3827
(1 row)

looking at the rewards:
select * from reward where addr_id = 2829 order by epoch_no asc;
  id   | addr_id |  type  | amount | epoch_no | pool_id
-------+---------+--------+--------+----------+---------
 68634 |    2829 | member | 121039 |     3820 |       3
 68664 |    2829 | member |  99125 |     3821 |       3
 68693 |    2829 | member | 109972 |     3822 |       3
 68722 |    2829 | member |  95739 |     3823 |       3
 68752 |    2829 | member | 109854 |     3824 |       3
 68782 |    2829 | member | 111134 |     3825 |       3
(6 rows)

and orphaned rewards:
select * from orphaned_reward where addr_id = 2829 order by epoch_no asc;
 id | addr_id | type | amount | epoch_no | pool_id
----+---------+------+--------+----------+---------
(0 rows)

The odd thing here is that although the address was only de-registered in epoch 3827 it got no rewards after epoch 3825.
We would expect to get rewards for epoch 3826 and orphaned rewards for epochs 3827 and 3829.
So how was this stake address delegated?:
select * from delegation where addr_id = 2829 ;
 id  | addr_id | cert_index | pool_hash_id | active_epoch_no | tx_id | slot_no
-----+---------+------------+--------------+-----------------+-------+----------
 285 |    2829 |          0 |            3 |            3820 | 27142 | 27476134
(1 row)

The fact that active_epoch_no here is 3820 explains why the first reward is in that epoch and not earlier.
So, did this pool get any rewards for the relevant epochs?
select epoch_no, count (addr_id) as reward_count from
    reward where pool_id = 3 and epoch_no >= 3815 and epoch_no < 3830
    group by epoch_no order by epoch_no asc ;
 epoch_no | reward_count
----------+--------------
     3815 |           21
     3816 |           21
     3817 |           21
     3818 |           21
     3819 |           21
     3820 |           22
     3821 |           22
     3822 |           22
     3823 |           22
     3824 |           22
     3825 |           22
     3826 |           21
     3827 |           21
     3828 |           21
     3829 |           21
(15 rows)

So the pool did earn rewards for epochs 3826-3829 but db-sync did not capture them for this address. Why?
There is no change between epoch 3825 and 3826, but the former got rewards and the later did not. Why?
There is only a single pool update (ie when the pool is created), so there were no pool changes:
select count (*) from pool_update where hash_id = 3 ;
 count
-------
     1
(1 row)

Is there an era change in the region of interest?
No, it switches from Shelley to Allegra somewhere between epoch 1331 and epoch 1347 and from Allegra to Mary somewhere between epoch 1978 and epoch 1992 (can;t be more exact during to sparseness of logging) The era before, during and after the problem is Mary.
As I have said elsewhere, having two vastly different implementations of the same complex logic and hoping that they produce the same results is un-reasonable and  is just an incredibly bad idea. The ledger-specs library should provide the rewards already tagged to show whether they are good or orphaned.

I agree that having logic in two places is asking for trouble. The problem is that the ledger cannot know what rewards are orphaned until the first block of a new epoch, at which time the information is used and discarded. For the ledger to provided such tagged rewards would mean storing a large map that is not used at all in the ledger.

Re-tested this with the master branch (commit 1c2262a8a70a023f65fd544e71aec5b387f167e0) and the results are identical. The node is also running from a recent commit on its master branch (commit https://github.com/input-output-hk/cardano-node/commit/7a056fd4b0c810906f66b3acc3031b4a02472d45).

Adding instrumentation to this was a HUGE pain in the neck, but I managed to do it.
Instrumenting the rewards for the address we are interested in before they are split into good vs orphaned rewards:
genericRewards: epoch 3820 reward is 121039
genericRewards: epoch 3821 reward is 99125
genericRewards: epoch 3822 reward is 109972
genericRewards: epoch 3823 reward is 95739
genericRewards: epoch 3824 reward is 109854
genericRewards: epoch 3825 reward is 111134

This matches the data in the database:
select * from reward where addr_id = 2865 order by epoch_no asc;
  id   | addr_id |  type  | amount | epoch_no | pool_id
-------+---------+--------+--------+----------+---------
 68955 |    2865 | member | 121039 |     3820 |       3
 68983 |    2865 | member |  99125 |     3821 |       3
 69012 |    2865 | member | 109972 |     3822 |       3
 69042 |    2865 | member |  95739 |     3823 |       3
 69072 |    2865 | member | 109854 |     3824 |       3
 69102 |    2865 | member | 111134 |     3825 |       3
(6 rows)

That means any error is in ledger-specs rather than db-sync .

Ah hang on. When Cardano.Sync.Era.Shelley.Generic.Rewards.genericRewards is called it is called with an EpochNo and from that the rwdEpoch field of the Cardano.Sync.Era.Shelley.Generic.Rewards.Rewards struct is calculated using:
      Rewards
        { rwdEpoch = epoch - 1 -- Epoch in whch rewards were earned.

So rewards for epoch 3826 would be calculated in epoch 3827. However, we know that the stake address is de-registered in epoch 3827 and if it is de-registered it should be classified as an orphaned reward.
However, this is not just a mis-classification, the reward for the address in question is missing completely. That points to ledger-specs being the problem.

Recently, ledger-specs started calculating rewards incrementally (because the number of stake addresses had grown so large that the calculation could no longer be done in one go).  I wonder if, as part of that change, an address is valid at the epoch boundary, it is invalid when the calculation is now being done.

This is so incredibly confusing.
Rewards earned in epoch 3826 are only distributed at the start of epoch 3228. That means that if the stake address is de-registrered in epoch 3837 then rewards for 3826 are actually orphaned. However. even if they are orphaned, they should still be tagged as such and made available to db-sync.

I can think of a scenario consistent with what we are seeing:
If the owner of \xe08190331207ecedfcaf448340d8bb84354a0e8c285982a2d7f98bb234 transferred all their ada to "another wallet" (ie to an address with a different stake credential) sometime in epoch 324, then it would be a registered stake address for what folks are calling the "epoch 326 rewards", but it would not show up in the reward update, since zero-valued member rewards are filtered out.
We could test this by seeing how much stake this address has in the snapshot taken on the 324 / 325 boundary.

@JaredCorduan Here are the transactions for that stake address:
PGPASSFILE=cardano-db-sync/config/pgpass-shelley-qa cardano-db-sync/cardano-db-tool-exe report transactions --stake-address stake_test1uzqeqvcjqlkwml90gjp5pk9mss655r5v9pvc9gkhlx9mydqrpmwv6

Transactions for: stake_test1uzqeqvcjqlkwml90gjp5pk9mss655r5v9pvc9gkhlx9mydqrpmwv6

                             tx_hash                              |        date/time        | direction |      amount
------------------------------------------------------------------+-------------------------+-----------+----------------
 27ec87b571d993868ced286ab6005556f6e8c407848c03ea9624d855d06e2b28 | 2021-07-01 11:54:13 UTC |  Incoming |    1000.000000
 ab7c8591fc962607c40b7aafac6527c082f086c5da20c29552a929b9e6952744 | 2021-07-01 13:02:21 UTC |  Outgoing |       4.200000
 47ba267adf4afa9734f9f461a16913bbd06715a22c5139378e9f0ed6c1e762cf | 2021-07-01 17:03:34 UTC |  Outgoing |       0.200000
 fda0900031df2ff3fb40f00dfe2b1d50f2517f3a3535f7cf8e2fcb7015d3ce15 | 2021-07-02 11:23:29 UTC |  Outgoing |       0.200000
 c6d51b157281c1971126b13f6321414c0b4457728c36e00a114abda20fc750ab | 2021-07-02 11:35:39 UTC |  Incoming |       1.800000

This is at epoch 3916 so your hypothesis that the balance was transferred out of the address is incorrect.

ok, thank you, back to the drawing board...

On the shelley_qa network there are over 200 stake addresses which have been re-registered. Finding addresses that have been de-registered and not re-registered can be found from the following table where the reg_count is 1 and it has received a non-zero number of rewards:
select stake_registration.*, count (stake_registration.addr_id) as reg_count,
        (select count (*) as rew_count from reward where addr_id = stake_registration.addr_id)
    from stake_deregistration
    inner join stake_registration on stake_registration.addr_id = stake_deregistration.addr_id
    group by stake_registration.id
    order by reg_count, rew_count asc ;

From that table, entries of interest are:
 id  | addr_id | cert_index | tx_id | reg_count | rew_count
-----+---------+------------+-------+-----------+-----------
269 |    1082 |          0 | 25308 |         1 |         1
176 |     649 |          0 | 23786 |         1 |         1
903 |    2865 |          0 | 27157 |         1 |         6
160 |     609 |          1 | 23693 |         1 |         8
162 |     612 |          5 | 23693 |         1 |         8
230 |     900 |          1 | 24755 |         1 |        13
232 |     903 |          5 | 24755 |         1 |        15
166 |     620 |          5 | 23719 |         1 |        45
164 |     617 |          1 | 23719 |         1 |        54

So, picking the first of these the registration:
select stake_registration.*, block.block_no, block.epoch_no from stake_registration
    inner join tx on tx.id = stake_registration.tx_id
    inner join block on tx.block_id = block.id
    where stake_registration.addr_id = 1082 order by epoch_no asc ;
 id  | addr_id | cert_index | tx_id | block_no | epoch_no
-----+---------+------------+-------+----------+----------
 269 |    1082 |          0 | 25308 |   869838 |     2609
(1 row)

the deregistration:
select stake_deregistration.*, block.block_no, block.epoch_no from stake_deregistration
    inner join tx on tx.id = stake_deregistration.tx_id
    inner join block on tx.block_id = block.id
    where stake_deregistration.addr_id = 1082 order by epoch_no asc ;
 id | addr_id | cert_index | tx_id | block_no | epoch_no
----+---------+------------+-------+----------+----------
 80 |    1082 |          0 | 25539 |   871267 |     2613
(1 row)

the delegation:
select * from delegation where addr_id = 1082 ;
 id  | addr_id | cert_index | pool_hash_id | active_epoch_no | tx_id | slot_no
-----+---------+------------+--------------+-----------------+-------+----------
 204 |    1082 |          1 |          152 |            2611 | 25308 | 18771236
(1 row)

the rewards:
select * from reward where addr_id = 1082 ;
  id   | addr_id |  type  | amount | epoch_no | pool_id
-------+---------+--------+--------+----------+---------
 36173 |    1082 | member |   9219 |     2611 |     152
(1 row)

absence of orphaned rewards:
select * from orphaned_reward where addr_id = 1082 order by epoch_no asc;
 id | addr_id | type | amount | epoch_no | pool_id
----+---------+------+--------+----------+---------
(0 rows)

but the pool did receive rewards for all the epochs of interest:
select epoch_no, count (addr_id) as reward_count from
    reward where pool_id = 152 and epoch_no >= 2608 and epoch_no < 2615
    group by epoch_no order by epoch_no asc ;
 epoch_no | reward_count
----------+--------------
     2609 |            9
     2610 |           10
     2611 |           13
     2612 |           12
     2613 |           12
     2614 |           12
(6 rows)

I know exactly what is going on now. I wrote a custom version of the ledger-state client to view the history of<PHONE_NUMBER>ecedfcaf448340d8bb84354a0e8c285982a2d7f98bb234.
We've run into one of the known warts described in the formal spec in 17 Errata:
17.2 Active stake registrations and the Reward Calculation

The reward calculation takes the set of active reward accounts as a parameter (the forth parameter
of reward in Figure 48). It is only used at the end of the calculation for filtering out unregistered
accounts. Therefore, if a stake credential is deregistered just before the reward calculation starts,
it cannot reregister before the end of the epoch in order to get the rewards. The time within the
epoch when the reward calculation starts should not make any difference. Note that this does
not affect the earnings that stake pools make from their margin, since each pool's total stake is
summed before filtering. The solution is to not filter by the current active reward accounts, since
rewards for unregistered accounts go to the treasury already anyway.

In particular, the credential<PHONE_NUMBER>ecedfcaf448340d8bb84354a0e8c285982a2d7f98bb234 was de-registered at slot 27542859. The reward calculation that started in epoch 3827 (which we've been calling "the rewards for epoch 326") began at slot 27543606 (747 slots after the de-registration). So this credential was filtered out of the reward update after its stake was accounted for, as described in the paragraph above. Which means, as I understand it, that db-sync would not be able to know there was an orphan, since it defines orphans as "things in the reward update that are not in the reward mapping at the epoch boundary" (which is a totally reasonable definition).
This logic has been around since the start of Shelley, there should be many instances of this on mainnet as well.

I guess my question now is, do we need to track orphans?

i am still detecting the presence of what should be orphaned rewards when using ledger-specs at commit bc5e54f0611a416db1e906d3783e4b973429f5eb .

yep, the ledger will continue to produce them

I guess my question now is, do we need to track orphans?

in case we want to accurately calculate the pool's ROS - yes, we need :)

The easier way to compute the pool's ROS is to look at the pool provenance. In particular, poorRP:
https://github.com/input-output-hk/cardano-ledger-specs/blob/4933c8c32ce3adca7d048da37204f678e8042fee/shelley/chain-and-ledger/executable-spec/src/Shelley/Spec/Ledger/RewardProvenance.hs#L73-L74
The provenance is exposed by the node in one of the mini-protocols.

The easier way to compute the pool's ROS is to look at the pool provenance. In particular, poorRP

good stuff, but is this value available for each epoch? we need to know this value for each epoch for pool's ROS calculation.

I am at least 90% certain that the orphaned rewards being retrieved by db-sync has changed recently. Specifically, if one runs master and an earlier version (either 8.0.0 or 9.0.0) on mainnet and compares the orphaned_reward table entries for a given epoch they will be different (ie this is at least partly what this bug is about).
If the orphaned_reward table is being used to calculate RoS then both master and 9.0.0 cannot be correct.

Probably the best solution is for ledger-specs to provide some way to extract a per epoch RoS for each pool. That way db-sync can provide the actual RoS values that the ledger uses to calculate rewards instead of users trying to calculate it themselves using data which is known to be incorrect/incomplete.

or at least provide the sum of rewards distributed by the pool (including orphan rewards) for each epoch

good stuff, but is this value available for each epoch? we need to know this value for each epoch for pool's ROS calculation.

The node exposes a query that can be used to get it:
https://github.com/input-output-hk/ouroboros-network/blob/e9cda57df7ea6969edbc3bfc4e117668277d09c8/ouroboros-consensus-shelley/src/Ouroboros/Consensus/Shelley/Ledger/Query.hs#L162-L163

@JaredCorduan Users should not need to do a local state query just to get data that should be in the database. I assume that is in ledger state somewhere. Please tell how and when I can access it.

it is not in the ledger state, but you can query the node for it

@dmitrystas
You almost certainly don't want to include the existing notion of orphaned rewards in any kind of calculation. The concept depends on incidental events.
In the reward scheme, the rewards calculated for epoch n are calculated using a snapshot of the stake distribution from the end of epoch n-2. These rewards are available to withdraw from the end of epoch n+1.
Rewards attributed to stake keys which are not registered go to the treasury. There are two points in time when this is checked. Once at the start of the reward calculation, and once at the end of epoch n+1.
What I suspect you want is the set of all rewards for an epoch that were lost due to deregistrations.
But this is not what the "orphaned rewards" give you! They only include the ones which were registered at the start of the reward calculation but not and the end of the epoch. Since the reward calculation starts partway into epoch n+1, I wouldn't expect this to be a reliable source of information.

The easier way to compute the pool's ROS is to look at the pool provenance

The approach Jared mentioned above will work to find the whole set.

There are two points in time when this is checked. Once at the start of the reward calculation, and once at the end of epoch n+1.
Thanks for the info @redxaxder , I didn't know that

But this is not what the "orphaned rewards" give you! They only include the ones which were registered at the start of the reward calculation but not and the end of the epoch.
I see, thanks for the explanations

@redxaxder db-sync should provide a table providing  something like ReturnOnStake. User should not have to query the node for this information. Similarly, db-syncshould not be querying thenode` for this information.


Update Hyundai Sonata 2020 support to include 2021

This seems the most productive way for me to confirm the 2021 Hyundai Sonata is:

Officially supported
Identical to the 2020

... before I buy a 2021 Sonata + a Comma 2.
If the comma.ai website frontend is in a repo somewhere I can get access to, I'll gladly open a PR adding the 2021 there, too.

The 2021 Sonata will likely work out of the box or need minimal changes, but we don't claim a car is supported before testing.


Feature: First Bad version

You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad.
Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad.
You are given an API bool isBadVersion(version) which returns whether version is bad. Implement a function to find the first bad version. You should minimize the number of calls to the API.
will be adding the solution for first bad version problem using java.

I want to work on this issue using C++, I will make sure I use well-structured code with proper comments
Please assign this to me


range and meaning of depth values

In the VideoProducer I can specify the flag want_depth="true" to obtain depth info. With only one byte per pixel the precision is limited, but well, better than nothing. Per default the range is dynamic to make the most out of it - apparently using 0 for the smallest depth in the image and 255 for the largest depth. I am not even sure whether the range is linear, logarithmic (which would make a lot of sense to me), or inverse linear (which seems to be another common convention).
The dynamic range may be useful for some things, but I'd like to obtain "absolute" depth data: A value of, say, 100 should always refer to the same depth in each frame, irrespective of the distribution of depth values. I would be fine with reasonable resolution in the range 0 to 10 blocks, and larger distances truncated (set to 255). So I specified:
<DepthScaling autoscale="false" min="0.0" max="1.0"/>
The effect is that in a normal scene the depth values saturate pretty quickly.  Setting min="0.9" improves things a lot, yet, then all depths values closer than about one block saturate at 0.
Questions:

Is the range linear, i.e., are the values proportional to distances (with the minimum as an offset in the dynamic case)?
What exactly is the meaning of the min and max attributes? Are they distances? Inverse distances? Whatever? Why is there an upper limit of one?
How can I specify a meaningful range, say, 0 to 10 blocks? Is that even possible?

Hi Tobias, yes, 1 byte per pixel is pretty limited - at some point we should expose the whole 32bpp depth buffer. The depth values we get come straight from openGL, with whatever normalisation/scaling that uses. I've just been doing a hasty bit of reading, and converting those values to a real distance is possible, but requires a bit of maths. See, for example, http://web.archive.org/web/20130416194336/http://olivers.posterous.com/linear-depth-in-glsl-for-real - which was cited on this stack overflow quesion: http://stackoverflow.com/questions/6652253/getting-the-true-z-value-from-the-depth-buffer
Perhaps we should be doing something like this in Malmo before passing the values on to the agent.
The easiest way to understand what's going on is probably to look straight at the source code, here: https://github.com/Microsoft/malmo/blob/master/Minecraft/src/main/java/com/microsoft/Malmo/MissionHandlers/VideoProducerImplementation.java - but, in brief, the min and max attributes were a vague effort to help with the accuracy issues when going from 32bpp to 8bpp. The openGL depth buffer values range from 0 to 1. min and max allow the user to crop those values, and then the range max-min is scaled to 0-255.
None of that is very useful if you are after real world distances, though. If you feel like getting your head round the necessary transforms, and adding them to VideoProducerImplementation.java, that would be incredibly helpful...

Dear David,
Thanks for the quick reply, that's already very helpful. From the links you posted I conclude that calculating the actual depth is easy, provided that the near and far clip planes are known. At least it is not significantly more work than is currently done in the Java code. The near and far distances can probably be queried from openGL somehow, but I am not familiar with that library. Do you happen to know whether they are constants in Minecraft? Or do they depend on the view distance in chunks or whatever?
Having the values would solve the issue for now, but not in an ideal way. Computing 32bit float depth in Java seems to be the proper solution. That apparently requires changes to the interface. Anyway, misusing the alpha channel for the depth is a hack (and I copied the bad design on my side). Once you have good resolution depth values there will also be no more need for dynamic normalization.


API port mismatch in k8s file

In several places in the k8s.yaml file the port listing for the API service is 8080, however in the "CONFIG" section it lists the port as 8090
This causes port mapping for the API port to fail, as the container is starting the API service on 8090 as requested by the config section.
Submitted a PR #17 for the change. Will need redeploy of https://deploy.kubemq.io/community

PR Merged