[$250] Preferences - When changing language, message about removed users is not changed in LHN

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.64-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: 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/5242214&group_by=cases:section_id&group_order=asc&group_id=229064
Issue reported by: Applause Internal Team
Action Performed:

Open the Expensify app.
Open any group chat.
Tap on the header and select "Members"
Remove members from the group.
Verify a system message is displayed showing this action and that the same message is seen on chat preview.
Tap on "Settings" on the bottom of the page.
Tap on "Preferences" and select "Language"
Change language to Spanish.
Return to inbox and verify that the preview of the group chat was updated to this change, and the system message on chat too.

Expected Result:
When changing language to spanish, the system message showing the action of removing group members and the preview of the chat on LHN, should be updated to this change.
Actual Result:
Message about removed members of a group in chat preview on LHN, is not updated to the language change.
Workaround:
Unknown
Platforms:

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

Screenshots/Videos
https://github.com/user-attachments/assets/70732224-a52a-4ae1-bcfa-916410c70704

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021859794304218279153
Upwork Job ID:<PHONE_NUMBER>218279153
Last Price Increase: 2024-11-29

Issue OwnerCurrent Issue Owner: @dukenv0307

Proposal
Please re-state the problem that we are trying to solve in this issue.
Message about removed members of a group in chat preview on LHN, is not updated to the language change.
What is the root cause of that problem?
We already have a case for REMOVEFROMROOM action with isInviteOrRemovedAction check here.
https://github.com/Expensify/App/blob/92685946d9e9dc6d7cad53038b3357e6bda9f20b/src/libs/SidebarUtils.ts#L437-L439
But the group chat report doesn't move to this block because this condition here
https://github.com/Expensify/App/blob/92685946d9e9dc6d7cad53038b3357e6bda9f20b/src/libs/SidebarUtils.ts#L430
What changes do you think we should make in order to solve the problem?
We should add a case for a group chat report here
const isGroupChat = ReportUtils.isGroupChat(report) || ReportUtils.isDeprecatedGroupDM(report);
if ((result.isChatRoom || result.isPolicyExpenseChat || result.isThread || result.isTaskReport || isThreadMessage || isGroupChat) && !result.private_isArchived) {

https://github.com/Expensify/App/blob/92685946d9e9dc6d7cad53038b3357e6bda9f20b/src/libs/SidebarUtils.ts#L430
and handle this case here
lastMessageText =
  lastMessageTextFromReport.length > 0
      ? ReportUtils.formatReportLastMessageText(Parser.htmlToText(lastMessageText))
      : ReportActionsUtils.getLastVisibleMessage(report.reportID, {}, lastAction)?.lastMessageText;
// eslint-disable-next-line no-nested-ternary
result.alternateText = lastMessageText.length > 0 ? (isGroupChat && lastActorDisplayName ? `${lastActorDisplayName}: ${lastMessageText}` : lastMessageText) : '';

https://github.com/Expensify/App/blob/92685946d9e9dc6d7cad53038b3357e6bda9f20b/src/libs/SidebarUtils.ts#L481
What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
Preferences - When changing language, message about removed users is not changed in LHN
What is the root cause of that problem?
We are displaying a properly constructed and translated text in ReportActionItemMessage here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/pages/home/report/ReportActionItemMessage.tsx#L45
But we have forgotten to make the same translation in two places by handling isInviteOrRemovedAction case specifically

In LHN: Although we are handling the case for isInviteOrRemovedAction here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/SidebarUtils.ts#L437-L438
It will not reach it as we haven't included isGroupChat condition here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/SidebarUtils.ts#L430
In chat thread header title: if we create a thread with the removed system action the chat thread report header title will not have the proper translated text matching with the report action itself as we didn't handle the case in getReportName here as we did for other exceptional report action cases
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/ReportUtils.ts#L4006

What changes do you think we should make in order to solve the problem?

We can either add the isGroupChat condition in here or if we don't want to allow group chat reports case to pass through the unwanted code section that we are now avoiding currently for group chats we can add isGroupChat condition and handle this specific case of  isInviteOrRemovedAction here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/SidebarUtils.ts#L489

else if (ReportUtils.isGroupChat(report) && ReportActionsUtils.isInviteOrRemovedAction(lastAction)) {
        const lastActionName = lastAction?.actionName ?? report.lastActionType;

        const lastActionOriginalMessage = lastAction?.actionName ? ReportActionsUtils.getOriginalMessage(lastAction) : null;
        const targetAccountIDs = lastActionOriginalMessage?.targetAccountIDs ?? [];
        const targetAccountIDsLength = targetAccountIDs.length !== 0 ? targetAccountIDs.length : report.lastMessageHtml?.match(/<mention-user[^>]*><\/mention-user>/g)?.length ?? 0;
        const verb =
            lastActionName === CONST.REPORT.ACTIONS.TYPE.ROOM_CHANGE_LOG.INVITE_TO_ROOM || lastActionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.INVITE_TO_ROOM
                ? Localize.translate(preferredLocale, 'workspace.invite.invited')
                : Localize.translate(preferredLocale, 'workspace.invite.removed');
        const users = Localize.translate(preferredLocale, targetAccountIDsLength > 1 ? 'workspace.invite.users' : 'workspace.invite.user');
        result.alternateText = ReportUtils.formatReportLastMessageText(`${lastActorDisplayName} ${verb} ${targetAccountIDsLength} ${users}`);

        const roomName = lastActionOriginalMessage?.roomName ?? '';
        if (roomName) {
            const preposition =
                lastAction.actionName === CONST.REPORT.ACTIONS.TYPE.ROOM_CHANGE_LOG.INVITE_TO_ROOM || lastAction.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.INVITE_TO_ROOM
                    ? ` ${Localize.translate(preferredLocale, 'workspace.invite.to')}`
                    : ` ${Localize.translate(preferredLocale, 'workspace.invite.from')}`;
            result.alternateText += `${preposition} ${roomName}`;
        }
    }

BTW we can take this piece of code into a util function and re-use it in both sections (DRY)
2. We should handle the isInviteOrRemovedAction in getReportName here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/ReportUtils.ts#L4006
 if (!isEmptyObject(parentReportAction) && ReportActionsUtils.isMemberChangeAction(parentReportAction)) {
            const elemets = ReportActionsUtils.getMemberChangeMessageElements(parentReportAction);
            const actionMessage = elemets.map((element) => element.content).join('');
            return formatReportLastMessageText(actionMessage);
        }

we can also optionally parse Parser.htmlToText what is returned from ReportActionsUtils.getMemberChangeMessageFragment(action).html
What alternative solutions did you explore? (Optional)

Edited by proposal-police: This proposal was edited at 2024-11-19 16:29:32 UTC.
Proposal
Please re-state the problem that we are trying to solve in this issue.
Preferences - When changing language, message about removed users is not changed in LHN
What is the root cause of that problem?
We are displaying a properly constructed and translated text in ReportActionItemMessage here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/pages/home/report/ReportActionItemMessage.tsx#L45
But we have forgotten to make the same translation in two places by handling isInviteOrRemovedAction case specifically

In LHN: Although we are handling the case for isInviteOrRemovedAction here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/SidebarUtils.ts#L437-L438
It will not reach it as we haven't included isGroupChat condition here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/SidebarUtils.ts#L430
In chat thread header title: if we create a thread with the removed system action the chat thread report header title will not have the proper translated text matching with the report action itself as we didn't handle the case in getReportName here as we did for other exceptional report action cases
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/ReportUtils.ts#L4006

What changes do you think we should make in order to solve the problem?

We can add the isGroupChat condition in here but I don't think we want to allow group chat reports case to pass through the unwanted code section that we are now avoiding currently for group chats so we should add isGroupChat condition and only for this specific case of  isInviteOrRemovedAction here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/SidebarUtils.ts#L430

...
result.isTaskReport ||
            (ReportUtils.isGroupChat(report) && ReportActionsUtils.isInviteOrRemovedAction(lastAction)) ||
            isThreadMessage)
...

We should handle the isInviteOrRemovedAction in getReportName here
https://github.com/Expensify/App/blob/14ca237ef392a3493336aa4fdf4a0d4529039972/src/libs/ReportUtils.ts#L4006

 if (!isEmptyObject(parentReportAction) && ReportActionsUtils.isMemberChangeAction(parentReportAction)) {
            const elemets = ReportActionsUtils.getMemberChangeMessageElements(parentReportAction);
            const actionMessage = elemets.map((element) => element.content).join('');
            return formatReportLastMessageText(actionMessage);
        }

we can also optionally parse Parser.htmlToText what is returned from ReportActionsUtils.getMemberChangeMessageFragment(action).html
What alternative solutions did you explore? (Optional)

Tested and confirmed that the language on system messages should update

@FitseTLT
I don't think we want to allow group chat reports case to pass through the unwanted code section that we are now avoiding currently for group chats
Can you show me the reason why we are doing that?

@dukenv0307 I am not insisting on it, I am just mentioning it as an option as adding only isGroupChat condition might not be desirable to fix problem for one type of action as it will force it to pass through a code section that handles many other types of actions although most of the actions are more or less room and policy related except may be this one
https://github.com/Expensify/App/blob/92685946d9e9dc6d7cad53038b3357e6bda9f20b/src/libs/SidebarUtils.ts#L435
if we also want the task actions handled similarly for group chats too we are good to go but in that case we will also need to move the code that precedes it with lastActorDisplayName for group chat case from here to here
However, the most important thing we should also handle is to fix getReportName as I mentioned in my proposal as without it we would be causing a regression where the chat thread header name will mismatch the report action displayed 👍

@mkzie2 Can we just move the isGroup chat logic to

@dukenv0307 Checked again and you're correct, we can simply add isGroupChat to this logic.

I think this bug is out of scope and already happens on staging, not after applying your first point.

Pls correct me if I missed sth.

Yes it might not be a regression but the root cause of the problem is when they implemented the translation of the report action they only implemented for ReportActionItem and copy to clipboard and LHN (excluding group chat) and forgot for thread header title and I can't see that out of the scope of this issue and it is closely related to the deep root cause of the issue.

I don't think it's in the scope of the issue.

The messages we handle in LHN and the Report screen differ. We're fixing the bug in LHN, not in the Report screen.

I can't see that out of the scope of this issue and it is closely related to the deep root cause of the issue.

Based on the deep root cause, the problem isn't that we don't handle the translation case for this action. We handled it here.

https://github.com/Expensify/App/blob/92685946d9e9dc6d7cad53038b3357e6bda9f20b/src/libs/SidebarUtils.ts#L437-L439
The RCA is just we don't include the group chat report in this case.
cc @dukenv0307

Hey @dukenv0307 what's the next step here, are we still waiting for different proposals?

@dukenv0307 Updated my proposal.

Thanks for the review @dukenv0307, I agree that we can handle the other bug in a different issue, assigning @mkzie2 🚀

Issue not reproducible during KI retests. (First week)

@dukenv0307 The PR is here.


nixos/drbd: fix syntax for etc config file and systemd service

Motivation for this change
Fix typo that causes DRBD module to raise an error when enabled.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Do you use this module? I wonder how long this has been broken for... Any interest in writing a NixOS test?

I just started trying to use it for an HA SAN.  There are some quirks to the pkg too.  Version 8 is not compatible with Linux kernel 5.x; I had to set boot.kernelPackages = pkgs.linuxPackages_4_19.  I tried to compile version 9 with nix, but it's going to take more work; the build stage looks for the kernel src directory, which isn't in the nix-store.

Do you use this module? I wonder how long this has been broken for... Any interest in writing a NixOS test?

I just started trying to use it for an HA SAN.  There are some quirks to the pkg too.  Version 8 is not compatible with Linux kernel 5.x; I had to set boot.kernelPackages = pkgs.linuxPackages_4_19.  I tried to compile version 9 with nix, but it's going to take more work; the build stage looks for the kernel src directory, which isn't in the nix-store.

It looks like there are more things broken with this than I first thought.  The systemd service is not configured correctly and calls the ExecStop command immediately after running the start script.

It looks like there are more things broken with this than I first thought.  The systemd service is not configured correctly and calls the ExecStop command immediately after running the start script.

I don't know if would be able find some time dig into this. My experience with drbd isn't that advanced, and isn't on NixOS at all. Are you considering digging deeper into this?

I don't know if would be able find some time dig into this. My experience with drbd isn't that advanced, and isn't on NixOS at all. Are you considering digging deeper into this?

The second commit I just made fixes the systemd service.  I might try to work on getting version 9 to compile (there are some nice new features), but I think this pull request works to fix version 8 for now.

The second commit I just made fixes the systemd service.  I might try to work on getting version 9 to compile (there are some nice new features), but I think this pull request works to fix version 8 for now.

Thanks again for your work on this @jslight90. Unfortunately I still haven't found time to test this out... but really the module seems pretty broken so I don't think this PR has any possibility to make things worse :laughing: From simple inspection of the change everything makes sense, so I'll go ahead and merge this if you're good with that... yes?

Closing in favor of https://github.com/NixOS/nixpkgs/pull/119904.


CrashLoopBackOff   on cdi-camel quickstart example

I am trying the CDI camel quickstart example on openshift origin and I get this CrashLoopBackOff status. This is the first time I am trying this and this isnt the only q/s example where this happens. Please guide me how to get this working.

Thanks for pointing this out, we have currently an issue with this which is tracked in https://github.com/fabric8io/ipaas-quickstarts/issues/1156 . This will be fixed ASAP. As a quick workaround you could remove the directory src/main/hawtapp within the project directory.
Sorry for any iconvenience.

Actually, I was able to get the logs for this and providing it below FWIW :-
Error occurred during initialization of VM
Error opening zip file or JAR manifest missing : agents/jolokia.jar
agent library failed to init: instrument

Works. thanks.

Another quickstart example where I see this CrashLoopBackoff happening is the cdi-camel-mq. Can you please guide how to fix this ?

@ZeroGraviti there are several ways how to diagnose this:

oc describe pod <pod name>
docker ps -a and check for the container id with the crashed app. Then: docker logs <container-id>. You need to find the node where there pod has been run, though.

Could you please post then the log output you find ?

oc logs <pod id> -p should do the trick, too.

The log output is as under :-
`Exception in thread "main" org.jboss.weld.exceptions.DeploymentException: Exception List with 9 exceptio
ns:
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type String wit
h qualifiers @Endpoint @ServiceName
at injection point [BackedAnnotatedField] @Inject @Endpoint @ServiceName private io.fabric8.cdi.weld.i
nternal.endpoints.ServiceInstanceWithEndpoint.service
at io.fabric8.cdi.weld.internal.endpoints.ServiceInstanceWithEndpoint.service(ServiceInstanceWithEndpo
int.java:0)
WELD-001475: The following beans match by type, but none have matching qualifiers:

Producer Method [String] with qualifiers [@ConfigProperty @Any] declared as [[BackedAnnotatedMethod]
@Produces @Dependent @ConfigProperty public org.apache.deltaspike.core.impl.config.DefaultConfigPropert
yProducer.produceStringConfiguration(InjectionPoint)]
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java

:359)`

guess you need an ActiveMQ Kubernetes service installed (with name 'fabric8mq') as stated in the README.
@davsclaus is this correct ? If so maybe we need to clarify the README a bit, too (i.e. how to install an ActiveMQ service)

the amq broker is in the ipaas project
https://github.com/fabric8io/fabric8-ipaas/tree/master/amqbroker
and the fabric8 top of it
https://github.com/fabric8io/fabric8-ipaas/tree/master/fabric8mq
I think you need to install them both
You can install it the same way as the quickstarts using mvn -Pf8-local-deploy
And there is a package for it here
https://github.com/fabric8io/fabric8-ipaas/tree/master/packages/amq
And released to central
http://repo2.maven.org/maven2/io/fabric8/ipaas/packages/amq/2.2.93/
So you could essentially install that kubernetes json or yaml file

amqbroker does not get deployed. I get a CrashLoopBackOff. I tried installing it using the f8 web application.
oc logs -f for that pod gives me Pod "amqbroker-0qhh9" in namespace "default": container "amqbroker" is in waiting state.

I did that and fabric8mq is working ( I dont think that ever was a problem). However, the amqbroker is still giving me a CrashLoopBackOff

@ZeroGraviti what gives a oc describe pod amqbroker-0qhh9 ? Could it be that it tries to download an an image which it doesnt find ?

I deleted the rc. Please give me time to spin a pod up again.

I cant make out but here is the output for the new pod :-
`[vagrant@vagrant amqbroker]$ oc describe pod amqbroker-fhdp9
Name:           amqbroker-fhdp9
Namespace:      default
Image(s):       fabric8/amqbroker:2.2.94-SNAPSHOT
Node:           <IP_ADDRESS>/<IP_ADDRESS>
Start Time:     Tue, 01 Mar 2016 18:44:37 +0000
Labels:         component=amqbroker,group=amqbroker,project=amqbroker,provider=fabric8,version=2.2.94-SN
APSHOT
Status:         Running
Reason:
Message:
IP:             <IP_ADDRESS>
Controllers:    ReplicationController/amqbroker
Containers:
amqbroker:
Container ID:       docker://15e32ce22a1f360db81e62bf181b793ce39d23385c808a5f153eda29c36c252c
Image:              fabric8/amqbroker:2.2.94-SNAPSHOT
Image ID:           docker://a46f980903b24fc2f2348b7beefec8df0dca185119885955f79ebe950412b5a0
QoS Tier:
cpu:                      BestEffort
memory:                   BestEffort
State:                      Waiting
Reason:                   CrashLoopBackOff
Last Termination State:     Terminated
Reason:                   Completed
Exit Code:                0
Started:                  Tue, 01 Mar 2016 18:45:07 +0000
Finished:                 Tue, 01 Mar 2016 18:45:13 +0000
Ready:                      False
Restart Count:              2
Environment Variables:
KUBERNETES_NAMESPACE:     default (v1:metadata.namespace)
Conditions:
Type          Status
Ready         False
Volumes:
default-token-duanf:
Type:       Secret (a secret that should populate this volume)
SecretName: default-token-duanf
Events:
FirstSeen     LastSeen        Count   From                            SubobjectPath           TypeReas
on              Message

    ------          -------

47s           47s             1       {default-scheduler }                                    NormalSc
heduled Successfully assigned amqbroker-fhdp9 to <IP_ADDRESS>
44s           44s             1       {kubelet <IP_ADDRESS>}       spec.containers{amqbroker}Normal
Created         Created container with docker id 06603a96757d
44s           44s             1       {kubelet <IP_ADDRESS>}       spec.containers{amqbroker}Normal
Started         Started container with docker id 06603a96757d
38s           38s             1       {kubelet <IP_ADDRESS>}       spec.containers{amqbroker}Normal
Created         Created container with docker id ba53715c2552
37s           37s             1       {kubelet <IP_ADDRESS>}       spec.containers{amqbroker}Normal
Started         Started container with docker id ba53715c2552
30s           30s             1       {kubelet <IP_ADDRESS>}                               WarningF
ailedSync       Error syncing pod, skipping: failed to "StartContainer" for "amqbroker" with CrashLoopBa
ckOff: "Back-off 10s restarting failed container=amqbroker pod=amqbroker-fhdp9_default(a633c417-dfdd-11e
5-a75d-0800274024d3)"
45s   19s     3       {kubelet <IP_ADDRESS>}       spec.containers{amqbroker}      Normal  PulledCo
ntainer image "fabric8/amqbroker:2.2.94-SNAPSHOT" already present on machine
17s   17s     1       {kubelet <IP_ADDRESS>}       spec.containers{amqbroker}      Normal  CreatedC
reated container with docker id 15e32ce22a1f
17s   17s     1       {kubelet <IP_ADDRESS>}       spec.containers{amqbroker}      Normal  StartedS
tarted container with docker id 15e32ce22a1f
30s   8s      2       {kubelet <IP_ADDRESS>}       spec.containers{amqbroker}      Warning BackOffB
ack-off restarting failed docker container
8s    8s      1       {kubelet <IP_ADDRESS>}                                       Warning FailedSy
nc      Error syncing pod, skipping: failed to "StartContainer" for "amqbroker" with CrashLoopBackOff: "
Back-off 20s restarting failed container=amqbroker pod=amqbroker-fhdp9_default(a633c417-dfdd-11e5-a75d-0
800274024d3)"`

looks like it could start the container but the container keeps crashing. what does oc logs -p amqbroker-fhdp9 give ?

Same as earlier (1 line) :-
[vagrant@vagrant amqbroker]$ oc logs -f amqbroker-hkcuc Pod "amqbroker-hkcuc" in namespace "default": container "amqbroker" is in waiting state.

Could you please use -p (which means logs from the previous pod, which crashed) ?

I have to spin up the pod again... Please wait...

Here you go -> http://pastebin.com/gB81bFSu

That seems weird that org.easymock.IAnswer is used by fabric8-cdi. @iocanel does that class ring any bell for you? eg check that pastebin above

Also, this part looks weird:
WELD-000119: Not generating any bean definitions from io.fabric8.cdi.weld.WeldJUnitRunner because of und
erlying class loading error: Type org.junit.runners.BlockJUnit4ClassRunner not found.  If this is unexpe
cted, enable DEBUG logging to see the full error.

Really curious why this test related classes creeped in.

The image includes fabric8-cdi-2.2.95-tests.jar which probably shouldn't be there and which references these JUnitRunner. This comes for from this dependency which has scope test but is still included by hawt-app.
@chirino is this something which is supposed to be correct, i.e. that test dependencies are included in hawt-app ?

Could it be because of the the <type>test-jar</type> that this filter doesn't work as expected ? (which is set to scope 'runtime' as it is the default value)

@chirino my guess is, that the map referenced here (whose key is only based on group & artifact, but not type) references the tests jar and not the real jar (with type "jar" instead of "test-jar"), so using project.getArtifactMap() is probably not appropriate here since it is ambiguous.
Could you please confirm (or reject) this ?

An another indication for this is, that this System.out.println() prints out
[io.fabric8.ipaas.apps:amqbroker:jar:2.2.94-SNAPSHOT, io.fabric8:fabric8-cdi:jar:2.2.95:compile, io.fabric8:fabric8-annotations:jar:2.2.95:compile, javax.inject:javax.inject:jar:1:compile, io.fabric8:kubernetes-api:jar:2.2.95:compile, javax.validation:validation-api:jar:1.1.0.Final:compile, org.json:json:jar:20151123:compile, dnsjava:dnsjava:jar:2.1.7:compile, io.fabric8:kubernetes-client:jar:1.3.69:compile, io.fabric8:kubernetes-model:jar:1.0.41:compile, com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.6.4:compile, com.squareup.okhttp:okhttp:jar:2.7.2:compile, com.squareup.okio:okio:jar:1.6.0:compile, com.squareup.okhttp:logging-interceptor:jar:2.7.2:compile, com.squareup.okhttp:okhttp-ws:jar:2.7.2:compile, org.slf4j:jul-to-slf4j:jar:1.7.12:compile, com.fasterxml.jackson.core:jackson-databind:jar:2.6.4:compile, com.fasterxml.jackson.core:jackson-annotations:jar:2.6.4:compile, com.github.mifmif:generex:jar:0.0.4:compile, dk.brics.automaton:automaton:jar:1.11-8:compile, io.fabric8:fabric8-utils:jar:2.2.95:compile, com.fasterxml.jackson.core:jackson-core:jar:2.6.4:compile, com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.6.4:compile, org.yaml:snakeyaml:jar:1.16:compile, javax.enterprise:cdi-api:jar:1.2:compile, javax.el:javax.el-api:jar:2.2.5:compile, javax.interceptor:javax.interceptor-api:jar:1.2:compile, javax:javaee-api:jar:7.0:compile, com.sun.mail:javax.mail:jar:1.5.0:compile, javax.activation:activation:jar:1.1:compile, org.apache.deltaspike.core:deltaspike-core-api:jar:1.5.3:compile, org.apache.deltaspike.core:deltaspike-core-impl:jar:1.5.3:compile, org.codehaus.plexus:plexus-utils:jar:3.0.22:compile, org.apache.activemq:activemq-broker:jar:5.12.1:compile, org.apache.activemq:activemq-client:jar:5.12.1:compile, org.apache.geronimo.specs:geronimo-jms_1.1_spec:jar:1.1.1:compile, org.fusesource.hawtbuf:hawtbuf:jar:1.11:compile, org.apache.activemq:activemq-openwire-legacy:jar:5.12.1:compile, org.apache.activemq:activemq-kahadb-store:jar:5.12.1:compile, org.apache.activemq.protobuf:activemq-protobuf:jar:1.1:compile, org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:jar:1.0.1:compile, commons-net:commons-net:jar:3.3:compile, com.google.guava:guava:jar:15.0:compile, org.slf4j:slf4j-log4j12:jar:1.7.12:compile, org.slf4j:slf4j-api:jar:1.7.12:compile, log4j:log4j:jar:1.2.17:compile, org.jboss.weld:weld-core:jar:2.2.5.Final:compile, org.jboss.weld:weld-core-impl:jar:2.2.5.Final:compile, org.jboss.weld:weld-api:jar:2.2.SP3:compile, org.jboss.weld:weld-spi:jar:2.2.SP3:compile, org.jboss.classfilewriter:jboss-classfilewriter:jar:1.0.4.Final:compile, org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Alpha1:compile, org.jboss.spec.javax.el:jboss-el-api_3.0_spec:jar:1.0.0.Alpha1:compile, org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.2_spec:jar:1.0.0.Alpha3:compile, org.jboss.logging:jboss-logging:jar:3.1.3.GA:compile, org.jboss.weld:weld-core-jsf:jar:2.2.5.Final:compile, org.jboss.weld.se:weld-se:jar:2.2.5.Final:compile, org.jboss.arquillian.container:arquillian-weld-ee-embedded-1.1:jar:1.0.0.CR8:compile, org.jboss.arquillian.testenricher:arquillian-testenricher-cdi:jar:1.1.11.Final:compile]

which doesn't contain the tests jar but io.fabric8:fabric8-cdi:jar:2.2.95:compile (which then gets overwritten by the map lookup with the tests jar. Not tried, just a guess).
BTW, I would change this output to proper info / debug.

Would it help if I have more detailed logs with logLevel Debug and a more full stack trace ?

Thanks a lot. I think, I already know what is happening: The ActiveMQ image is flawed because when building the image a jar containing helper classes (fabric8-cdi-2.2.95-tests.jar) is included accidentally instead of the real jar (fabric8-cdi-2.2.95.jar).
The problem lies in the plugin which collects the dependent jars (see the analysis above), which must be fixed.

A quick fix is to comment out https://github.com/fabric8io/fabric8-ipaas/blob/3b35ed8178c38b174e6d6dafab9c1299d1659724/amqbroker/pom.xml#L91-L96 and then do a mvn -Pf8-local-deploy
@iocanel @davsclaus since the build seems to work without this dependency is it save to remove ?

@rhuss If it's an unused dependency then it should be removed, but if we need it for adding tests (which I assume we don't have by the fact removing it doesn't fail the build...) then we should fix up hawt-app maven plugin & add tests too, which probably would have shown up this issue.

@jimmidyson since the build including tests work I assume that the dependency is not working, so imo its safe to remove it (as proposed by https://github.com/fabric8io/fabric8-ipaas/pull/203 , too).
For the hawt-app issue I will open a dedicated fabric8 issue. Tests would be good indeed for hawt-app for this case.

Reopening as the original issue still isn't fixed, although the subsequently discovered one is :)

Ok, so the amqbroker now deploys (without any local (e.g., pom.xml) code changes by me), however the quickstart for cdi-camel-mq still gets into CrashLoopBackoff status. I do have the 2 required f8 services for fabric8mq and amqbroker running.

I disabled that hawt-app problem in camel-cdi that would add jolokia 2 times, so it now deploys fine
https://github.com/fabric8io/ipaas-quickstarts/commit/fe05af4dc49b0c0ef3aeaf20039314c5de0ee6dc

@ZeroGraviti can you try again with the broker, and then log a new ticket. As this ticket is about cdi-camel which now works

Hello Guys,
I started openshift recently and strucked with the following issue
Status:
Crash loop back off
IP:
<IP_ADDRESS>
Node:
node1.openshift.local (<IP_ADDRESS>)Restart Policy:
Always
Container axway
State:
Waiting (CrashLoopBackOff)
Last State
Terminated at Apr 18, 2017 9:12:19 PM (Completed)
Ready:
false
Restart Count:
75
Please help me
Thankyou


[ScrollArea] Weird scroll behavior in safari using tailwindcss container query and dangerouslySetInnerHTML

Bug report
Current Behavior
Cannot scroll to bottom using mouse wheel in safari. The page will bounce back a bit when reaching the bottom.
https://github.com/radix-ui/primitives/assets/39266588/92bc2579-82b4-4a6a-a694-5867b13b8acd
I have tested a lot of combinations. This weird behavior only occurs when:

Using safari. No such behavior in chrome and Firefox.
Using mouse wheel instead of touchpad.
Using tailwindcss container query plugin, add a @container className to the list items.
Using an IntersectionObserver to observe a div at the bottom of the scrollarea viewport.
Using dangerouslySetInnerHTML in list items.
Using Nextjs. I tested in a vite/react project with the same code and it scrolls normally.

You need to satisfy so many conditions at once to reproduce this bug. This is way beyond my understanding of everything. It may not be a radix ui bug, even. I can't tell.

Expected behavior
Scrolls normally to the end.

Reproducible example
I have created an example here:
CodeSandbox Example
Suggested solution

Additional context

Your environment

Software
Name(s)
Version

Radix Package(s)
@radix-ui/react-scroll-area
^1.0.5

React
n/a
^18

Browser
Safari
17.5 (196<IP_ADDRESS>.6)

Assistive tech

Node
n/a
20

npm/yarn
pnpm
9.3.1

Operating System
macOS
14.5

I have a test sandbox with safari but it works fine. Maybe you need to check safari version.
Safari : Version 17.1 (196<IP_ADDRESS>.7)


Reduce SonarQube issues #1

Signed-off-by: Brian Cragun<EMAIL_ADDRESS>Many noisy warnings from SonarQube removed.  Some refactoring to accomplish that.

tab @LisaWellman @klwhaley


Is there a way to include records that are not associated to primary model?

I am trying to 'include' ( side load ) records that are not directly ( though indirectly ) related to the primary resource object being serialized.
Is there a way to do that?
I tried to using the includes hash, but if that have does not find the association in the resource, it ignores it.
  class ProjectResource < JSONAPI::Resource
     has_many :sites
  end

  include_resources = ['sites', 'buildings']
  json = JSONAPI::ResourceSerializer.new(
      ProjectResource, include: include_resources
  ).serialize_to_hash(ProjectResource.new(project))

I want to include the buildings but they are not part of the project model directly, so they don't show up.
I could do 'sites.buildings' but I want to avoid too much nesting, since the buildings have the has_one :site already.
Does that make sense?
I am arriving at jsonapi from the active model serializer world where you could side load anything you wanted with a payload.

I am seeing that the answer is no .. since the jsonapi structure is not so loosey goosey

I don't think this has anything to do with "loosey goosey" -- The following is perfectly valid JSONapi:
{
    "data": {
        "id": "1",
        "type": "tickets",
        "links": {
            "self": "http://localhost:3000/v1/tickets/1"
        },
        "attributes": {
            "title": "Lomo 8-bit vinegar carry listicle pork belly vinyl.",
            "description": "I'll copy the solid state COM pixel, that should card the THX alarm!",
            "queue": "billing-questions",
            "severity": "critical",
            "status": "open",
            "autotask-id": "T20160113.0001",
            "created-at": "2016-01-28T16:56:38Z",
            "updated-at": "2016-01-28T16:56:38Z"
        },
        "relationships": {
            "creator": {
                "links": {
                    "self": "http://localhost:3000/v1/tickets/1/relationships/creator",
                    "related": "http://localhost:3000/v1/tickets/1/creator"
                },
                "data": {
                    "type": "users",
                    "id": "1"
                }
            },
            "notes": {
                "links": {
                    "self": "http://localhost:3000/v1/tickets/1/relationships/notes",
                    "related": "http://localhost:3000/v1/tickets/1/notes"
                }
            }
        }
    },
    "included": [
        {
            "id": "1",
            "type": "users",
            "links": {
                "self": "http://localhost:3000/v1/users/1"
            },
            "attributes": {
                "first-name": "Bertram",
                "last-name": "Haley",
                "email"<EMAIL_ADDRESS>                "phone": "(746) 565-9521 x17021"
            },
            "relationships": {
                "account": {
                    "links": {
                        "self": "http://localhost:3000/v1/users/1/relationships/account",
                        "related": "http://localhost:3000/v1/users/1/account"
                    },
                    "data": {
                        "type": "accounts",
                        "id": "1"
                    }
                }
            }
        },
        {
            "id": "1",
            "type": "accounts",
            "links": {
                "self": "http://localhost:3000/v1/accounts/1"
            },
            "attributes": {
                "name": "Account 1",
            }
        }
    ]
}

I think your saying you can sideload what ever you want.  For some reason it did not work for me, but I will revisit when I get back to trying JSON API serializer again.

Oh -- I'm just saying the JSONapi SPEC allows for this to happen, but the jsonapi-resources rails gem does not have that functionality.

:+1: for this as a feature request, by the way. It would be very valuable to us. As far as the way to do it.. that's a different discussion.

Hmm .. yeah .. good points.


Ceph RBD primary storage fails connection and renders node unusable

ISSUE TYPE

Bug Report

COMPONENT NAME
Cloudstack agent
CLOUDSTACK VERSION
4.11
CONFIGURATION
KVM cluster with CEPH backed RDB primary storage
OS / ENVIRONMENT
Ubuntu 16.04 / 14.04
SUMMARY
On a perfectly working 4.10 node with KVM hypervisor and Ceph RBD primary storage, after upgrading to 4.11, cloudstack agent is unable to connect the BRD pool in libvirt, giving just a generic "operation not supported" error in its logs:
2018-04-06 16:27:37,650 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:91b4e1df) Attempting to create storage pool be80af6a-7201-3410-8da4-9b3b58c4954f (RBD) in libvirt
2018-04-06 16:27:37,652 WARN  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:91b4e1df) Storage pool be80af6a-7201-3410-8da4-9b3b58c4954f was not found running in libvirt. Need to create it.
2018-04-06 16:27:37,653 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:91b4e1df) Didn't find an existing storage pool be80af6a-7201-3410-8da4-9b3b58c4954f by UUID, checking for pools with duplicate paths
2018-04-06 16:27:37,664 ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:91b4e1df) Failed to create RBD storage pool: org.libvirt.LibvirtException: failed to connect to the RADOS monitor on: storagepool1:6789,: Operation not supported
2018-04-06 16:27:42,762 INFO  [cloud.agent.Agent] (Agent-Handler-4:null) (logid Lost connection to the server. Dealing with the remaining commands...
Exactly the same pool was previously working before upgrade:
2018-04-06 12:53:52,847 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) (logid:14dace5e) Attempting to create storage pool be80af6a-7201-3410-8da4-9b3b58c4954f (RBD) in libvirt
2018-04-06 12:53:52,850 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) (logid:14dace5e) Found existing defined storage pool be80af6a-7201-3410-8da4-9b3b58c4954f, using it.
2018-04-06 12:53:52,850 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:null) (logid:14dace5e) Trying to fetch storage pool be80af6a-7201-3410-8da4-9b3b58c4954f from libvirt
2018-04-06 12:53:53,171 INFO  [cloud.agent.Agent] (agentRequest-Handler-2:null) (logid:14dace5e) Proccess agent ready command, agent id = 46
STEPS TO REPRODUCE
Take an existing and working cloudstack cluster with 4.10, with RDB primary storage and Ubuntu 14.04 based agents and upgrade them to version 4.11 of the agent.
EXPECTED RESULTS
The cluster should be working fine, the agents should be connecting and the RDB pool should be correctly opened in libvirt.
ACTUAL RESULTS
Cloudstack agents fails to boot with a generic "Failed to create RBD storage pool: org.libvirt.LibvirtException: failed to connect to the RADOS monitor on: storagepool1:6789,: Operation not supported" error and loops in a failed state, rendering the machine unusable.
WORKAROUND
To workaround the issue I have tried to use the following XML config (dumped from another node where it is correctly running) and define the pool directly in libvirt, and it worked as expected:

be80af6a-7201-3410-8da4-9b3b58c4954f
be80af6a-7201-3410-8da4-9b3b58c4954f

cephstor1

virsh pool-define test.xml
Pool be80af6a-7201-3410-8da4-9b3b58c4954f defined from test.xml
root@compute6:~# virsh pool-start  be80af6a-7201-3410-8da4-9b3b58c4954f
Pool be80af6a-7201-3410-8da4-9b3b58c4954f started
root@compute6:~# virsh pool-info be80af6a-7201-3410-8da4-9b3b58c4954f
Name:           be80af6a-7201-3410-8da4-9b3b58c4954f
UUID:           be80af6a-7201-3410-8da4-9b3b58c4954f
State:          running
Persistent:     yes
Autostart:      no
Capacity:       10.05 TiB
Allocation:     2.22 TiB
Available:      2.71 TiB
And now the cloudstack agent correctly starts:
2018-04-09 10:29:19,989 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:f0021131) Attempting to create storage pool be80af6a-7201-3410-8da4-9b3b58c4954f (RBD) in libvirt
2018-04-09 10:29:19,990 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:f0021131) Found existing defined storage pool be80af6a-7201-3410-8da4-9b3b58c4954f, using it.
2018-04-09 10:29:19,991 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:null) (logid:f0021131) Trying to fetch storage pool be80af6a-7201-3410-8da4-9b3b58c4954f from libvirt
2018-04-09 10:29:20,372 INFO  [cloud.agent.Agent] (agentRequest-Handler-2:null) (logid:f0021131) Proccess agent ready command, agent id = 56

I've marked this as blocker applicable for Ceph users, we'll try to get this fixed. @giorgiomassar8 can you advise any documentation on how to setup a small ceph storagepool to test this against KVM?

Can you increase the logging to DEBUG on the Agent and show the XML which the Agent generates to define the storage pool?
The error you are seeing comes from libvirt+librados underneath so I'd need to see the XML it generates.

I have set debugging on one of the agents and this is what I get:
2018-05-02 13:41:44,401 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:d06ebad5) Attempting to create storage pool be80af6a-7201-3410-8da4-9b3b58c4954f (RBD) in libvirt
2018-05-02 13:41:44,401 DEBUG [kvm.resource.LibvirtConnection] (agentRequest-Handler-4:null) (logid:d06ebad5) Looking for libvirtd connection at: qemu:///system
2018-05-02 13:41:44,403 WARN  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:d06ebad5) Storage pool be80af6a-7201-3410-8da4-9b3b58c4954f was not found running in libvirt. Need to create it.
2018-05-02 13:41:44,403 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:d06ebad5) Didn't find an existing storage pool be80af6a-7201-3410-8da4-9b3b58c4954f by UUID, checking for pools with duplicate paths
2018-05-02 13:41:44,404 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:d06ebad5) Checking path of existing pool 9fb695bd-a47f-45d3-9fe7-f029dff431d8 against pool we want to create
2018-05-02 13:41:44,408 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:d06ebad5) Attempting to create storage pool be80af6a-7201-3410-8da4-9b3b58c4954f
2018-05-02 13:41:44,408 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:d06ebad5) <pool type='rbd'>
<name>be80af6a-7201-3410-8da4-9b3b58c4954f</name>
<uuid>be80af6a-7201-3410-8da4-9b3b58c4954f</uuid>
<source>
<host name='storagepool1' port='6789'/>
<name>cephstor1</name>
</source>
</pool>

2018-05-02 13:41:44,415 ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:d06ebad5) Failed to create RBD storage pool: org.libvirt.LibvirtException: failed to connect to the RADOS monitor on: storagepool1:6789,: Operation not supported
2018-05-02 13:41:44,415 DEBUG [cloud.agent.Agent] (agentRequest-Handler-4:null) (logid:d06ebad5) Seq 1-6775102689425489922:  { Ans: , MgmtId:<PHONE_NUMBER>3598, via: 1, Ver: v1, Flags: 10, [{"com.cloud.agent.api.UnsupportedAnswer":{"result":false,"details":"Unsupported command issued: com.cloud.agent.api.ModifyStoragePoolCommand.  Are you sure you got the right type of server?","wait":0}}] }
2018-05-02 13:41:44,451 DEBUG [kvm.resource.LibvirtComputingResource] (Agent-Handler-4:null) (logid:d06ebad5) Execution is successful.
2018-05-02 13:41:44,453 DEBUG [cloud.agent.Agent] (Agent-Handler-4:null) (logid:d06ebad5) Watch Sent: Seq 1-6775102689425489921:  { Ans: , MgmtId:<PHONE_NUMBER>3598, via: 1, Ver: v1, Flags: 10, [{"com.cloud.agent.api.Answer":{"result":true,"details":"","wait":0}}] }
2018-05-02 13:41:44,464 DEBUG [utils.nio.NioConnection] (Agent-NioConnectionHandler-1:null) (logid:) Location 1: Socket Socket[addr=/<IP_ADDRESS>,port=8250,localport=45374] closed on read.  Probably -1 returned: Connection closed with -1 on reading size.
2018-05-02 13:41:44,464 DEBUG [utils.nio.NioConnection] (Agent-NioConnectionHandler-1:null) (logid:) Closing socket Socket[addr=/<IP_ADDRESS>,port=8250,localport=45374]
2018-05-02 13:41:44,464 DEBUG [cloud.agent.Agent] (Agent-Handler-1:null) (logid:) Clearing watch list: 2
2018-05-02 13:41:46,728 INFO  [cloud.agent.Agent] (Agent-Handler-1:null) (logid:) Connected to the server
2018-05-02 13:41:49,465 INFO  [cloud.agent.Agent] (Agent-Handler-1:null) (logid:) Lost connection to the server. Dealing with the remaining commands...

In the generated XML there isn't the secret part, perhaps the agent is trying to use another authentication mechanism which this version of libvirt does not support?
This is what I have been using as a workaround, and it works:
<pool type="rbd">
  <name>be80af6a-7201-3410-8da4-9b3b58c4954f</name>
  <uuid>be80af6a-7201-3410-8da4-9b3b58c4954f</uuid>
  <source>
    <name>cephstor1</name>
    <host name='storagepool1' port='6789'/>
    <auth username='admin' type='ceph'>
      <secret uuid='OMITTED'/>
    </auth>
  </source>
</pool>

Ok, I see. The operation not supported is odd, but it seems to be missing the cephx part indeed.
At the moment I do not have a 4.11 environment to test this with, but I'll look at the code later.

@wido  The issue seems to be that for any KVM host, the disk format is always hard coded to QCOW2 here:
https://github.com/apache/cloudstack/blob/master/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java#L768
This gets sent along to the agent.  I guess this is a reasonable default for KVM, but obviously for RBD it needs to be RAW, and it won't know that until it looks up the storage pool.  In the short term, I think hard coding the disk format to RAW is valid, it can't be anything but that, but it might also be good for the management server to send along the correct disk type.

@kiwiflyer Have you seen this one? The Agent is not providing the secret for the RBD storage pool to the libvirt XML definition.

I will see if I can deploy a test environment to reproduce this issue meanwhile.

@nathanejohnson nope I don't see qcow2/raw mismatch errors here, I do believe the issue is related to the fact that for some reasons, no authentication information is put in the pool's XML sent to libvirt.

@giorgiomassar8 here are the logs from when the rbd pool was configured on our host:
2018-05-02 12:07:01,225 DEBUG [cloud.agent.Agent] (agentRequest-Handler-3:null) (logid:328be924) Request:Seq 1-8891231564336201737:  { Cmd , MgmtId:<PHONE_NUMBER>2684, via: 1, Ver: v1, Flags: 100011, [{"com.cloud.agent.api.CreateStoragePoolCommand":{"_createDatastore":false,"add":true,"pool":{"id":3,"uuid":"e485c675-896a-303e-be82-c42357c6b4c1","host":"<IP_ADDRESS>","path":"acs411testing","userInfo":"acs411testing:supersecretkeygoeshere==","port":6789,"type":"RBD"},"localPath":"/mnt//dcf0b890-984a-3c12-9190-050f3294a590","wait":0}}] }
2018-05-02 12:07:01,225 DEBUG [cloud.agent.Agent] (agentRequest-Handler-3:null) (logid:328be924) Processing command: com.cloud.agent.api.CreateStoragePoolCommand
2018-05-02 12:07:01,225 DEBUG [cloud.agent.Agent] (agentRequest-Handler-3:null) (logid:328be924) Seq 1-8891231564336201737:  { Ans: , MgmtId:<PHONE_NUMBER>2684, via: 1, Ver: v1, Flags: 10, [{"com.cloud.agent.api.Answer":{"result":true,"details":"success","wait":0}}] }
2018-05-02 12:07:01,313 DEBUG [cloud.agent.Agent] (agentRequest-Handler-5:null) (logid:328be924) Request:Seq 1-8891231564336201738:  { Cmd , MgmtId:<PHONE_NUMBER>2684, via: 1, Ver: v1, Flags: 100011, [{"com.cloud.agent.api.ModifyStoragePoolCommand":{"add":true,"pool":{"id":3,"uuid":"e485c675-896a-303e-be82-c42357c6b4c1","host":"<IP_ADDRESS>","path":"acs411testing","userInfo":"acs411testing:supersecretkeygoeshere==","port":6789,"type":"RBD"},"localPath":"/mnt//dcf0b890-984a-3c12-9190-050f3294a590","wait":0}}] }
2018-05-02 12:07:01,313 DEBUG [cloud.agent.Agent] (agentRequest-Handler-5:null) (logid:328be924) Processing command: com.cloud.agent.api.ModifyStoragePoolCommand
2018-05-02 12:07:01,313 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:328be924) Attempting to create storage pool e485c675-896a-303e-be82-c42357c6b4c1 (RBD) in libvirt
2018-05-02 12:07:01,313 DEBUG [kvm.resource.LibvirtConnection] (agentRequest-Handler-5:null) (logid:328be924) Looking for libvirtd connection at: qemu:///system
2018-05-02 12:07:01,319 WARN  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:328be924) Storage pool e485c675-896a-303e-be82-c42357c6b4c1 was not found running in libvirt. Need to create it.
2018-05-02 12:07:01,319 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:328be924) Didn't find an existing storage pool e485c675-896a-303e-be82-c42357c6b4c1 by UUID, checking for pools with duplicate paths
2018-05-02 12:07:01,319 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:328be924) Checking path of existing pool d358f5c2-f5fd-43a8-844e-cf01183de220 against pool we want to create
2018-05-02 12:07:01,322 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:328be924) Attempting to create storage pool e485c675-896a-303e-be82-c42357c6b4c1
2018-05-02 12:07:01,323 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:328be924) <secret ephemeral='no' private='no'>
<uuid>e485c675-896a-303e-be82-c42357c6b4c1</uuid>
<usage type='ceph'>
<name>acs411testing@<IP_ADDRESS>:6789/acs411testing</name>
</usage>
</secret>

2018-05-02 12:07:01,388 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:328be924) <pool type='rbd'>
<name>e485c675-896a-303e-be82-c42357c6b4c1</name>
<uuid>e485c675-896a-303e-be82-c42357c6b4c1</uuid>
<source>
<host name='<IP_ADDRESS>' port='6789'/>
<name>acs411testing</name>
<auth username='acs411testing' type='ceph'>
<secret uuid='e485c675-896a-303e-be82-c42357c6b4c1'/>
</auth>
</source>
</pool>

2018-05-02 12:07:01,434 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:328be924) Trying to fetch storage pool e485c675-896a-303e-be82-c42357c6b4c1 from libvirt
2018-05-02 12:07:01,434 DEBUG [kvm.resource.LibvirtConnection] (agentRequest-Handler-5:null) (logid:328be924) Looking for libvirtd connection at: qemu:///system
2018-05-02 12:07:01,439 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-5:null) (logid:328be924) Succesfully refreshed pool e485c675-896a-303e-be82-c42357c6b4c1 Capacity:<PHONE_NUMBER>0304 Used: 0 Available:<PHONE_NUMBER>2944

do you see the key go across before it attempts to create the libvirt storage pool?

So working with a user, it does appear that the original issue outlined by @giorgiomassar8 is different from the one we found. The user in question is running Ubuntu 16.04 and no authentication is being passed to libvirt.

This particular installation is a 4.9.3 -> 4.11.1 upgrade.

Are there by any chance slashes (/) in the secret of this RBD pool?

Funny you should mention that. There is a single slash and I did notice a
very old open bug report on jira for that issue. This user had upgraded a
prod system, so I had a very limited window to take a look.
On Sun, Nov 18, 2018, 2:35 AM Wido den Hollander<EMAIL_ADDRESS>wrote:

Are there by any chance slashes (/) in the secret of this RBD pool?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/apache/cloudstack/issues/2611#issuecomment-439676341,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQek8gqrA6MTISjaYPX6UambYNX8trOZks5uwRu7gaJpZM4Tqnd3
.

Could you check that for me? As I have seen issues with that in the secret information and URL parsing inside Java.

The pool secret apparently does not have any slashes. The encrypted version in the DB does, but obviously that shouldn't matter.  I'm trying to work back through the code to see what might have changed between 4.9.x and 4.11.x.
The secret is set correctly in the 4.9.3 release.

So a couple of observations -
I have a 4.11 lab now installed from scratch (not an upgrade) and this issue doesn't exist. I did notice that the pool userInfo is not encrypted in this lab. In the 4.9.x -> 4.11.1 system I was asked to look at, the userInfo was encrypted.
Looking back through commits since around 4.10->4.11, it looks like there were some changes to how some encrypted data was being returned in the APIs. Although, I have no smoking gun yet, I'm wondering whether there are some other changes, other than configuration api returns, that have also been modified to not returned unencrypted content.
The commit that turned me onto this is - https://github.com/apache/cloudstack/commit/fca41148b7fafe891df6264b178d2e0baf184ecf
I'm not suggesting this commit is the problem, but I'm certainly exploring whether this issue could be being caused by an unintended consequence similar to tightening up security.

ok...well it's definitely not decrypting the userInfo before it gets sent to the agent the the upgrade case above.
He's our 4.11 lab with debug enabled.
I restarted libvirtd to remove the storage pool.
I then restarted the cloudstack-agent. the agent then tries to add the storage pool back -
2018-11-21 10:54:18,733 DEBUG [cloud.agent.Agent] (agentRequest-Handler-3:null) (logid:3144d09f) Request:Seq 1-5622462659795353602:  { Cmd , MgmtId:<PHONE_NUMBER>2684, via: 1, Ver: v1, Flags: 100011, [{"com.cloud.agent.api.ModifyStoragePoolCommand":{"add":true,"pool":{"id":3,"uuid":"e485c675-896a-303e-be82-c42357c6b4c1","host":"<IP_ADDRESS>","path":"acs411testing","userInfo":"acs411testing:AQDk3ela0NMAMxAA-4BkLN20KPNiEm2aJ8WVAg==","port":6789,"type":"RBD"},"localPath":"/mnt//dcf0b890-984a-3c12-9190-050f3294a590","wait":0}}] }

In the Ubuntu case above, it looks  like the encrypted db payload in the userInfo field, rather than the decrypted version with colon delimiter that is expected in the code here: https://github.com/apache/cloudstack/blob/4809fe7cb434010adc776a0da40cdf37848cc26e/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java#L245, so hence NULL gets returned and then libvirt throws an exception.

Note that my test lab is Centos 7.

@wido or @GabrielBrascher , do either of you guys have both an older 4.9/4.10 lab as well as a 4.11 lab on Ubuntu 16.04?
It would be interesting to test trying a manual decrypt on the user_info field from the storage_pool data using a 4.9.x payload, but trying the decrypt using a 4.11 installation.
e.g. java -classpath /usr/share/cloudstack-common/lib/jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI decrypt.sh input=encrypted_payload_from_user_info password=encrypt_password verbose=true

@kiwiflyer All our test and production systems are 4.11 at the moment running on Ubuntu 16.04
They were all upgraded from 4.9 to 4.10 and then to 4.11. In none of the cases we ran in to this.

@wido @kiwiflyer is this still a bug wrt <IP_ADDRESS> or next <IP_ADDRESS>/<IP_ADDRESS> ?

I have not been able to verify this bug, so I can't tell you.

I saw this problem in a ACS mailing list users system after attempting an upgrade from 4.9.3 -> 4.11.1. Unfortunately, the bug was in production, so I only had an extremely limited window to take a look before they restored their previous 4.9.3 version. At the present time, I'm not sure what caused it and I haven't been able to reproduce this in a lab environment.
This definitely wasn't one off situation, as they attempting this upgrade multiple times with the same result.

So, @nathanejohnson  and I just started some upgrade testing on some lab environments going from our 4.8 production branch to 4.12 and we may have just run into this same bug. We'll triage it and upgrade everyone early next week.

@wido I can second what @kiwiflyer mentioned earlier:  The reason pools aren't being created has to do with the user_info being passed along encrypted, the split doesn't find a semicolon so it skips the secret section of the pool xml.  It looks like the only time it's sent along decrypted is when the pool is initially created..
Obviously I'm missing something, I can't find anything significant that's different between 4.8 and 4.12's handling of this logic-wise, but this is failing consistently now in our lab environment.  Would love some ideas on troubleshooting

as a followup, I cannot reproduce this in our fresh installed lab, only the one we upgraded.  The userInfo comes across decrypted there.

This seems like a management server thing where it doesn't send the data properly. Because I can't think of a reason why this happens on the Agent/KVM side.
I honestly have no idea.

I narrowed down the issue to where at some point during the upgrade process the db.properties file had switched from using encryption to not, so the user_info field was stored encrypted in the db but then was being sent without being decrypted on the way to the agent.  I see in the spec file that the db.properties file is listed as config(noreplace) in the red hat spec file, but I think in some situations that will still end up overwritten.  At one point during the upgrade, I completely removed the RPM's and had to downgrade, even though I left the /etc/cloudstack/management directory in place I think when I then reinstalled the RPMs it overwrote db.properties since the file wasn't marked as owned by a previous installation, if this makes sense.
At any rate, I suspect something similar might have occurred with the original bug.  I'm going to try upgrading another cluster, paying attention to the db.properties file and see if this happens again.

Hi all,
I hit the same issue on 4.11:
2019-03-01 22:27:51,249 DEBUG [cloud.agent.Agent] (agentRequest-Handler-4:null) (logid:1b76ee36) Processing command: com.cloud.agent.api.ModifyStoragePoolCommand
2019-03-01 22:27:52,897 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) Attempting to create storage pool 4b2e09ee-b93b-37c9-8e12-93711c1be506 (RBD) in libvirt
2019-03-01 22:27:53,373 DEBUG [kvm.resource.LibvirtConnection] (agentRequest-Handler-4:null) (logid:1b76ee36) Looking for libvirtd connection at: qemu:///system
2019-03-01 22:27:53,374 WARN  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) Storage pool 4b2e09ee-b93b-37c9-8e12-93711c1be506 was not found running in libvirt. Need to create it.
2019-03-01 22:27:53,374 INFO  [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) Didn't find an existing storage pool 4b2e09ee-b93b-37c9-8e12-93711c1be506 by UUID, checking for pools with duplicate paths
2019-03-01 22:27:53,374 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) Checking path of existing pool 5fd92804-3d79-4bf3-8d44-df78b73b6a85 against pool we want to create
2019-03-01 22:27:53,376 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) Checking path of existing pool 05c30f6d-5725-3369-a8d6-b5fb37c7ba8f against pool we want to create
2019-03-01 22:27:53,390 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) Checking path of existing pool 3aaac88e-61f6-3ab8-9fb0-79e9e025d097 against pool we want to create
2019-03-01 22:27:53,392 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) Attempting to create storage pool 4b2e09ee-b93b-37c9-8e12-93711c1be506
2019-03-01 22:27:53,902 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) <secret ephemeral='no' private='no'>
<uuid>4b2e09ee-b93b-37c9-8e12-93711c1be506</uuid>
<usage type='ceph'>
<name>cephuser@<IP_ADDRESS>:6789/rbd</name>
</usage>
</secret>

2019-03-01 22:27:53,911 DEBUG [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) <pool type='rbd'>
<name>4b2e09ee-b93b-37c9-8e12-93711c1be506</name>
<uuid>4b2e09ee-b93b-37c9-8e12-93711c1be506</uuid>
<source>
<host name='<IP_ADDRESS>' port='6789'/>
<name>rbd</name>
<auth username='cephuser' type='ceph'>
<secret uuid='4b2e09ee-b93b-37c9-8e12-93711c1be506'/>
</auth>
</source>
</pool>

2019-03-01 22:27:53,979 ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) Failed to create RBD storage pool: org.libvirt.LibvirtException: failed to connect to the RADOS monitor on: <IP_ADDRESS>:6789,: Invalid argument
2019-03-01 22:27:53,979 ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) (logid:1b76ee36) Failed to create the RBD storage pool, cleaning up the libvirt secret
2019-03-01 22:27:53,980 WARN  [cloud.agent.Agent] (agentRequest-Handler-4:null) (logid:1b76ee36) Caught:
com.cloud.utils.exception.CloudRuntimeException: Failed to create storage pool: 4b2e09ee-b93b-37c9-8e12-93711c1be506
	at com.cloud.hypervisor.kvm.storage.LibvirtStorageAdaptor.createStoragePool(LibvirtStorageAdaptor.java:550)
	at com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager.createStoragePool(KVMStoragePoolManager.java:322)
	at com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager.createStoragePool(KVMStoragePoolManager.java:316)
	at com.cloud.hypervisor.kvm.resource.wrapper.LibvirtModifyStoragePoolCommandWrapper.execute(LibvirtModifyStoragePoolCommandWrapper.java:42)
	at com.cloud.hypervisor.kvm.resource.wrapper.LibvirtModifyStoragePoolCommandWrapper.execute(LibvirtModifyStoragePoolCommandWrapper.java:35)
	at com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper.execute(LibvirtRequestWrapper.java:78)
	at com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeRequest(LibvirtComputingResource.java:1463)
	at com.cloud.agent.Agent.processRequest(Agent.java:647)
	at com.cloud.agent.Agent$AgentRequestHandler.doTask(Agent.java:1085)
	at com.cloud.utils.nio.Task.call(Task.java:83)
	at com.cloud.utils.nio.Task.call(Task.java:29)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Debugging the error I see this:

level:VIR_ERR_ERROR
code:VIR_ERR_SYSTEM_ERROR
domain:VIR_FROM_STORAGE
hasConn:false
hasDom:false
hasNet:false
message:failed to connect to the RADOS monitor on: <IP_ADDRESS>:6789,: Invalid argument
str1:%s
str2:failed to connect to the RADOS monitor on: <IP_ADDRESS>:6789,: Invalid argument
str3:null
int1:22
int2:-1

@nathanejohnson any update on this one?
I am not sure if this issue is a blocker for 4.12, considering that not all contributors were able to reproduce it (@wido was able to upgrade from 4.10 -> 4.11 -> 4.12).

We are still unable to reproduce this issue. Thus, I am removing this as a Blocker for 4.12.

Sorry for the late reply, i have not had a chance to upgrade our other development cluster but I agree this shouldn't be a blocker.

@nathanejohnson @giorgiomassar8 @GabrielBrascher @wido is this still an issue, should we close it or is there a PR coming?

@nathanejohnson @giorgiomassar8 @GabrielBrascher @wido kindly discuss and advise a milestone in case a PR is coming soon. I've removed this issue from <IP_ADDRESS>.

Any date ? https://github.com/apache/cloudstack/issues/5741


Webservice for archived qf rounds

We require this information to be fetched from the backend. Could you please provide it?
We need to retrieve all ended (archived) QF rounds with the following details:

Slug
Name
Matching pool
Total donations amount
Unique donors
Start date
End date

Additionally, we need to sort them by the following criteria:

Matching pool
Number of unique donors
Newest
Oldest

Thank you.

cc: @laurenluz @jainkrati
Originally posted by @MohammadPCh in https://github.com/Giveth/giveth-dapps-v2/issues/3748#issuecomment-2044676561

@CarlosQ96 Can you pick this?

@CarlosQ96 Can you pick this?

I'm on it

Could you please add more data on this issue how can I test it ? @RamRamez

@maryjaf I think it's better to test it with the FE issue at the same time
https://github.com/Giveth/giveth-dapps-v2/issues/3748


⚠ Processors has degraded performance

In 9e48c76, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 109 ms

Resolved: Processors performance has improved in 9155172.


Support for locales other than english

Is there support for having a locale other than English in the generated docs? Specifically, I'm referring to texts like "Search", "Authentication", "Authorizations", "Responses" etc. It would be nice if ReDoc would check for the lang attribute on the html tag or allow an option on the redoc tag.
Keywords: i18n, internationalization, translation

Just found #367. Closing this in favor of that issue


fix: Don't panic on empty helm charts

Add TestHelmEmptyChart to validate

/hold
manually testing on GKE

/unhold
Tests finally pass


-no-bans has expired

We put a time bomb in for the -no-bans option, since we were having issues with the trust system spuriously banning people. It expired last Friday, and we extended the deadline to this Friday.
I looked at the Kibana logs for who would've been banned if bans were turned on on our nodes:
Investigation of ban logs over the last 7 days, based on Kibana query "New trust is -1.000000.":

335 of the messages are from a single IP, in EC2. I think they had their network misconfigured somehow.
Excluding that IP, there are only 18 messages, distributed over 11 IPs.

Bans from grab-bag

Around 13:28 September 7, the rpc parallel worker on grab-bag_us-west-2_seed_0.us-west-2 died. Since we use parallel workers to check proofs, this made proof checking fail and we would've banned some IPs because they sent what seemed to be invalid proofs. This accounts for 6 of the ban messages.
One peer would've been banned because of Outgoing_connection_error. This should only be a trust decrease of 0.05, so they should have had to do a bunch of other stuff in order to get banned. I don't see any other stuff in the log though. Something weird happened.
One peer would've been banned because of Sent_invalid_proof, unrelated to the parallel worker dying. Appears to be a legit error.

Bans from something-snarky

Two Disconnected_chain errors from one peer
Three different IPs owned by VPS provider your-server.de would've been banned because of Gossiped_old_transition. Probably the same person operating them with some clock problem.
One IP owned by EC2 with the same issue.
One peer in EC2 Connected to a single O(1) node 463 times and eventually would've gotten banned for Incoming_connection_error. Possibly related to #3022. Or that guy is running a lot of clients simultaneously, or an honest to goodness attempted DoS. They also would've been banned on some other O(1) nodes.

Discussion
So we would've only banned 12 IPs in the last week. And the vast majority of those would have only been banned on one or two nodes, not disconnected from the network as a whole. At least one of them was misconfigured enough to be totally broken regardless of if we banned it or not.
What do people think of removing -no-bans? If you're against it, how much do we need to lower the rate of spurious bans for you to be satisfied? I said before I was fine with decreasing ban duration to 4 hours from 24, and I still am.

Good analysis, supports turning off -no-bans in my opinion.


Bot split tweet mid-word

Bot split the word here:

I know that. That is exactly the point for which I have praised Dr. Rajendra Prasad and hope he will extend to us the same consideration for placing our point of view as you would to any others, because it has always been our experience that when it com

es to a question of our placing our views we are invariably asked to be brief.

Char count of first sentence: 253

Thanks for reporting, merging with #3 for easier tracking.


Suggest to add Dockerfile in Harbor

Suggest to add Dockerfile view in harbor UI. I put a image to Harbor, but others may not understand its usage only by image's name.
Suggest to add images build from Dockerfile in UI.

that sounds like there has to be an cluster for building, for short term I don't think it's in the scope of this project.

Thanks for your suggestion.
It looks like adding a description to the image is more appropriate for this use case. What do you think?
@clouderding

@hainingzhang  嗯，就是这个意思。这样其他人可以更全面了解到该镜像的内容、用途。

Sure. We can consider to add this in future release. Thanks for your suggestion. @clouderding

Closing as we've supported description.


Panic in example image-classification-web when activate 2 times Wgpu backend

Describe the bug
We can't use 2 times the function "init_async::(&device).await;"
panic :
image_classification_web.js:478 panicked at burn\burn-compute\src\compute.rs:77:17: Client already created for device BestAvailable
To Reproduce
Steps to reproduce:

Activate the GPU - WebGPU in dropdown
Activate an other backend in the dropdown
Activate again the GPU - WebGPU in dropdown
See error in console

I'm not sure what we should do, should we just ignore the init_async function or panic as right now?

Thank you for reporting it.

I'm not sure what we should do, should we just ignore the init_async function or panic as right now?

At very least, we should:

Document on the WGPU behavior if this is how it is supposed to behave.
We should fix the example to account for the expected behavior in WGPU.


chore(main): release 0.3.10

:robot: I have created a release beep boop
0.3.10 (2023-11-17)
Miscellaneous Chores

release 0.3.10 (2a06777)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/socialgene/sgnf/releases/tag/v0.3.10 :sunflower:


Fatal alert should terminate DTLS connection

RFC 4346 - 7.2.2. Error Alerts

Error handling in the TLS Handshake protocol is very simple.  When an
error is detected, the detecting party sends a message to the other
party.  Upon transmission or receipt of a fatal alert message, both
parties immediately close the connection.  Servers and clients MUST
forget any session-identifiers, keys, and secrets associated with a
failed connection.  Thus, any connection terminated with a fatal
alert MUST NOT be resumed.

However, in DTLSRecordLayer.java receive() method:
            switch (type)
            {
            case ContentType.alert:
            {
                if (plaintext.length == 2)
                {
                    short alertLevel = plaintext[0];
                    short alertDescription = plaintext[1];

                    peer.notifyAlertReceived(alertLevel, alertDescription);

                    if (alertLevel == AlertLevel.fatal)
                    {
                        fail(alertDescription);
                        throw new TlsFatalAlert(alertDescription);
                    }

                    // TODO Can close_notify be a fatal alert?
                    if (alertDescription == AlertDescription.close_notify)
                    {
                        closeTransport();
                    }
                }

                continue;
            }

The call to fail() tries to send an alert back to the peer before calling closeTransport(). I think in the case of a generic fatal alert, it should just call closeTransport() immediately and clean up whatever other session state remains. I think it's only the special case of close_notify that needs a special "close handshake" as described in section 7.2.1.

The echoing of the peer's fatal alert has now been removed. If there was a separate component of this issue relating to the connection not terminating, I think it's covered by #158.


[Question] Autogenerating a struct containing argument guards

Hi there,
I've ran into a bit of an issue where I'm using AutoBogus to generate a struct which has argument guards for its constructor.

Normally I would inherit from AutoFaker<T> as documented here, but it seems like there is a class constraint on T.
I tried using a custom AutoGeneratorOverride as documented here, it seems like the property has already been populated at that point.

I would new up an AutoFaker<T> and use a custom RuleFor with this property, but it seems a bit tedious. Is there a way to easily achieve what I'd like without having to duplicate a bunch of RuleFors?
For reference, here is a sample application containing the issue I'm experiencing:
class Program
{
    static void Main(string[] args)
    {
        // The line just below will sometimes work, and other times fail when I get MyEnum.None
        var generatedStruct = AutoFaker.Generate<MyStruct>();

        Console.Read();
    }
}

enum MyEnum
{
    None,
    Something
}

readonly struct MyStruct
{
    public MyEnum Something { get; }

    public string Value { get; }

    public MyStruct(MyEnum something, string value)
    {
        if (something == MyEnum.None)
        {
            throw new ArgumentException();
        }

        Something = something;
        Value = value;
    }
}

Thanks in advance :).

Hey @Eric-Bonneau
The best approach at the moment would be the override. When you create your Override code, there is a virtual method Preinitialize which you can use to control whether a value is generated before calling the override.
This details got missed off in the Readme, but should be there now.
Hope that helps.
Nick.

Hi @nickdodd79,
Thanks for the info. Will try this out!


fix(TDI-39737): type unsupported by salesforce components after migraion

What is the current behavior? (You can also link to an open issue here)
In the old framework, if field type is int, in tSalesforceInput schema, we can set field is Long to read the value.
But in new framework, we can't do this.
What is the new behavior?
Support types which they can works in old framework.
Please check if the PR fulfills these requirements

[x] The commit message follows Talend standard
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[x] The code coverage on new code >75%
[x] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build / CI related changes
[ ] Other... Please describe:

Does this PR introduce a breaking change?

[ ] Yes
[x] No

If this PR contains a breaking change, please describe the impact and migration path for existing applications: ...
Other information:
For jira: https://jira.talendforge.org/browse/TDI-39737

Pull request test result: failure :x:

Pull request test result: success :star:
Sonar results

Pull request test result: success :star:
Sonar results


I want to contribute to your repo by adding some cheatsheet

This will be very beneficial for beginner

Sure, please go ahead. It's a great idea


Customize the url based on locale

I need to localize my urls as some parts of my path are localized, e.g.
{
  published: {
    url: 'http://localhost:3000/{locale}/movie/{slug}',
    url: 'http://localhost:3000/{locale}/film/{slug}',
  },
}

How could I easily handle this case ?

I am looking for a same solution here.
@mattmilburn Is there any solution to achieve this?

Hi @jphilung @Shekhar-Zealous Have you tried extending the plugin as described in the Extending section of the docs? This let's you modify the URL at run time while having access to the current entity data, which would include the locale.

@mattmilburn The extended solution hook isn't working from my side which I have already mentioned here https://github.com/mattmilburn/strapi-plugin-preview-button/issues/69#issuecomment-1517594724.
Can you please help here.
Thanks

Hi @mattmilburn . Thank you for developing this project.
I've also done all the steps mentioned in the docs to extend logic via a hook. Unfortunately, it also did not work for me. It seems like this hook has no effect on the url.
If you have, can you please provide some working example project where this hook works?
Thank you

Hi @jphilung @Shekhar-Zealous @ectuser This plugin has now been upgraded to version 2.0.0 with breaking changes to the configuration and a lot of improvements behind the scenes.
I believe this upgrade should resolve the issues you are having with the plugin's custom hook. Please let me know how it goes for you and see the migration guide before upgrading.
Please note this upgrade does not yet include support for populating relations into the URL (eg. using {category.slug} but that feature will be implemented in another update in the future.

@mattmilburn Thanks for the reply.
I'll be waiting for the future update which can include relations.
But as of now, I was in a bit hurry for the project development and my requirement was a bit dynamic so I have to create a plugin of my own just to fulfill the project requirement.
Thank you

i just discovered this plugin and tried with locale support. don't use {slug} but use {id} for your preview since each localized page have a different id. it'll be smooth then


feat: add a calculation for cpm5d

Reference https://github.com/apache/skywalking/pull/10420#issuecomment-1437282944
Video
https://user-images.githubusercontent.com/20871783/220372006-754054b5-e625-440f-aa96-94a5d4861aa8.mov
Signed-off-by: Qiuxia Fan<EMAIL_ADDRESS>

Done


Add URL query param feature

Issue: https://github.com/leoyli/addon-contexts/issues/15
What I did

[feature] query param feature.
[type] types to match with its typed function name.
[doc] quickly document the new feature in README.md.
[test] add tests to cover the newly added serializers.
[chore] clean up: rename file structure.

How to test
Story running under default contexts

Manager mode: https://monorepo-2kjlxsp90.now.sh/examples/official-storybook/?path=/story/addons-contexts--languages
Iframe mode: https://monorepo-2kjlxsp90.now.sh/examples/official-storybook/iframe.html?id=addons-contexts--languages

Story running under preselected contexts set by URL query params

Manager mode: https://monorepo-2kjlxsp90.now.sh/examples/official-storybook/?path=/story/addons-contexts--languages&contexts=CSS Themes=Desert,Languages=Chinese
Iframe mode: https://monorepo-2kjlxsp90.now.sh/examples/official-storybook/iframe.html?id=addons-contexts--languages&contexts=CSS Themes=Desert,Languages=Chinese

Known bugs

The iframe URL is not get updated unless you switch from tabs (i.e. the iframe opening url is out of sync), which is the same problem as in the addon-knob.
Perform api.setQueryParams({ contexts: null }): nothing happened, but based on the doc this query param should be removed.

Will file issues later to track it.

Possibly related to the known bugs https://github.com/storybooks/storybook/issues/6075
@tmeasday is looking into that issue

Sorry for some drastic files movement, but I think this can make the source code easier to follow...  And I quickly add 2 tests to cover the new pure functions.  I think the feature is good to go.  Let me see if we can push this addon to Angular community as the next. 💪

@shilman, I believe there are some pattern that potential can be further extracted to make cross framework addon development a breeze.  I would be happy to share or draft a post to discuss on it.  So far it seems each addon came up its unique way (and I came up with my own... but hope people think this could be easy to understand and follow).

I guess many people starts to get no-cycle linter errors due to eslint-plugin-import v1.7.2.  The feature was added last year but get finally fixed and running out-of-box. It's a nice linting though.  Here is the error when I run it on my local machine:

/Volumes/Data/GitHub/storybook/addons/info/src/components/types/ArrayOf.js
  1:1  error  Unused eslint-disable directive (no problems were reported from 'import/no-cycle')

/Volumes/Data/GitHub/storybook/addons/info/src/components/types/ObjectOf.js
  1:1  error  Unused eslint-disable directive (no problems were reported from 'import/no-cycle')

/Volumes/Data/GitHub/storybook/addons/info/src/components/types/OneOfType.js
  1:1  error  Unused eslint-disable directive (no problems were reported from 'import/no-cycle')

/Volumes/Data/GitHub/storybook/addons/info/src/components/types/PrettyPropType.js
  1:1  error  Unused eslint-disable directive (no problems were reported from 'import/no-cycle')

/Volumes/Data/GitHub/storybook/addons/info/src/components/types/Shape.js
  1:1  error  Unused eslint-disable directive (no problems were reported from 'import/no-cycle')

@leoyli I just pushed a fix for the linting error. Hopefully it passes CI. 🙏

@leoyli BTW can you create an issue in the storybook repo and reference that instead using the Issue: #xxx format? that way the issue will be closed & commented on when i release this improvement

@shilman, do you mean open an issue for the linting error or copy the original issue into this repo?!

@leoyli copy the original issue into this repo

I have rebased the branch, and patch d66aa30 for fixing the potential bugs due to exposing the state via URL query param. This avoid any inconsistency (as far as I can catch).

I have rebased the branch, and patch d66aa30, b178d68 for fixing the potential bugs due to exposing the state via URL query param. This avoid any inconsistency (as far as I can catch).

@leoyli build failed in addons/contexts:
$ node ../../scripts/prepare.js
src/shared/serializers.ts(21,3): error TS2322: Type 'string[]' is not assignable to type 'SelectionState'.
  Index signature is missing in type 'string[]'.

@shilman, learned a lesson on .reduce type inference... sometimes it failed in infer the type, especially when its initial value is null or undefined; then I have to manually specify it 👀.

Going to merge it since CD/CI are happy and all my paranoid checks and bug hunting have been done! 💪

Related to #6602.


Admin Page

Added an admin page to make it easier for us to manipulate company data.

#125

#125

Hey Harry! We actually don't use those tokens anymore, since we need the user to have a token even if they haven't logged in, probably going to remove those in another PR, the tokens we use now are in https://github.com/pipelines-lol/pipelines/tree/secure-api, if you want to take a look into those!

#125

Hey Harry! We actually don't use those tokens anymore, since we need the user to have a token even if they haven't logged in. We're probably going to remove those in another PR.
The tokens we use now are in https://github.com/pipelines-lol/pipelines/tree/secure-api, if you want to take a look into those!

Yes that was just an example of how you can encode isAdmin instead of assigning the mode in cookies directly.


Review requirements (add poetry)

It would be useful to review the requirements so that xbridge is compatible with (at least) versions >= than the ones present on Ubuntu 24.04 LTS:

python3-py7zr - 0.11.3
python3-pandas - 2.1.4
python3-lxml - 5.2.1

Currently xbrige is forcing newer versions for all these 3 libraries as dependencies but, unless it uses features that are very new, it might be that the these specific versions are not strictly necessary.

For this change we require then to use poetry as dependencies manager

Py7zr has been removed and Poetry has been used as internal project manager, instead of pipenv.


[web]: Scroll Website

Flutter web: (Channel beta, v1.15.17, on Microsoft Windows [, locale en-US)
Hello,
I am sharing a video and would like to know how to fix it,
Problem: When I open link from Facebook Messenger I cant scroll back.
Link Site: https://danielreuven.page.link/hello
Link Video: https://firebasestorage.googleapis.com/v0/b/mytoradr.appspot.com/o/video-1586110866.mp4?alt=media&token=b79aea4c-f9e5-4b25-afe2-77ae15a64959
Thanks.

Hi, @danielreuven It is working fine on my phone. I suggest you try to rearrange your widget tree structure by adjusting the height width of the child widgets because in most of the cases this problem arises due to mismanagement of the child widgets in single child scroll view
Let me know

Hi @danielreuven
can you please provide your flutter doctor -v and flutter run --verbose?
Also, to better address the issue, would be helpful if you could post a minimal code sample to reproduce the problem
Thank you

@danielreuven
I can't reproduce it.
I hope you've solved the issue.
Closing as additional information isn't provided.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, minimal reproducible sample code (if related) and the output of 'flutter doctor -v'  please.