Form does not trigger onSubmit in Reat Native Expo

Current Behavior
Form does not trigger onSubmit in Reat Native Expo
Expected Behavior
onSubmit function should be triggered on click submit button inside Form
Tamagui Version
1.72.1

Platform (Web, iOS, Android)
Android (and maybe Ios, not tested).

Reproduction
import { View as RNView, StyleSheet } from "react-native";
import React, { useState } from "react";
import { View, Text, Form, Button, Input, H3, Label, Checkbox } from "tamagui";
import { Link } from "expo-router";

const Login = () => {
    const [email, setEmail] = useState("");
    const [password, setPassword] = useState("");
    const [rememberMe, setRememberMe] = useState(false);

    const submitForm = () => {
        console.log("Triggered");
        console.log(email, password, rememberMe);
    };

    return (
        <RNView style={styles.formContainer}>
            <Form gap={15} onSubmit={submitForm}>

                    Welcome back

                <Input
                    size={"$4"}
                    placeholder='Email'
                    value={email}
                    onChangeText={setEmail}
                />
                <Input
                    size={"$4"}
                    placeholder='Password'
                    value={password}
                    onChangeText={setPassword}
                />

                <View
                    fd='row'
                    alignItems='center'
                    justifyContent='space-between'
                    px={15}
                >
                    <View fd='row' alignItems='center'>
                        <Checkbox
                            size='$4'
                            mr={15}
                            checked={rememberMe}
                            onCheckedChange={setRememberMe}
                        >
                            <Checkbox.Indicator>
                                {/* Icon for checked */}
                                <Text>x</Text>
                            </Checkbox.Indicator>
                        </Checkbox>
                        Remember me
                    </View>
                </View>

                <Form.Trigger mt={30} asChild>
                    <Button>Login</Button>
                </Form.Trigger>
            </Form>
        </RNView>
    );
};

export default Login;

const styles = StyleSheet.create({
    formContainer: {
        flex: 1,
        justifyContent: "center",
        paddingHorizontal: 15,
        paddingVertical: 20,
    },
});

System Info
System:
    OS: Windows 10 10.0.19045
    CPU: (4) x64 Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
    Memory: 2.77 GB / 7.96 GB
  Binaries:
    Node: 18.15.0 - C:\Program Files\nodejs\node.EXE
    npm: 9.5.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.19041.1266.0), Chromium (117.0.2045.43)
    Internet Explorer: 11.0.19041.1566
  npmPackages:
    @babel/core: ^7.20.0 => 7.23.0
    @expo/webpack-config: ^19.0.0 => 19.0.0
    @react-navigation/drawer: ^6.6.4 => 6.6.4
    @tamagui/config: ^1.72.1 => 1.72.1
    @tamagui/font-inter: ^1.72.1 => 1.72.1
    @tamagui/font-silkscreen: ^1.72.1 => 1.72.1
    @tamagui/shorthands: ^1.72.1 => 1.72.1
    @tamagui/themes: ^1.72.1 => 1.72.1
    @types/react: ~18.2.14 => 18.2.22
    expo: ~49.0.12 => 49.0.12
    expo-constants: ~14.4.2 => 14.4.2
    expo-device: ~5.4.0 => 5.4.0
    expo-font: ~11.4.0 => 11.4.0
    expo-linking: ~5.0.2 => 5.0.2
    expo-router: ^2.0.0 => 2.0.8
    expo-splash-screen: ~0.20.5 => 0.20.5
    expo-status-bar: ~1.6.0 => 1.6.0
    expo-updates: ~0.18.13 => 0.18.13
    react: 18.2.0 => 18.2.0
    react-dom: 18.2.0 => 18.2.0
    react-native: 0.72.5 => 0.72.5
    react-native-gesture-handler: ~2.12.0 => 2.12.1
    react-native-reanimated: ~3.3.0 => 3.3.0
    react-native-safe-area-context: 4.6.3 => 4.6.3
    react-native-screens: ~3.22.0 => 3.22.1
    react-native-web: ~0.19.6 => 0.19.9
    tamagui: ^1.72.1 => 1.72.1
    typescript: ^5.1.3 => 5.2.2

up! experiencing the same

Just bumped our packages from 1.31.2 to 1.72.3 and experiencing the same issue on iOS

I came across this as well on the ^1.74.1. The button calls the onPress fine but won't trigger the form submit.

+1 Same issue IOS

I found out there is really little test on tamagui. This bug would be caught immediately with components testing

fix in 0605e21def72ac1fad4fca4fa57abc778282ad9a going out now in v1.74.3
@Jean-MarcCheynier yes our web tests are very robust, our native tests are less so. we have maestro set up with some tests, and we unit test a variety of things (something like 300 unit tests run every release covering many areas native uses).
it's an ongoing process. we have improved a lot since beginning of the year, and we're setting up maestro cloud on an OSS sponsorship so we can run more native tests in CI.


changed API URL to reflect what is defined in the docs

I noticed the URL in the gem didn’t match up w/ what the docs currently say to use

Thanks for the PR. However you can simply switch to use the forecast-ruby gem. This is the official Ruby library. I'll make a note in the README for people to use that library instead.

Oh ok cool. Thx. The link in the docs might need to be updated too then since they still refer to this repo.

On Dec 21, 2015, at 6:33 PM, David Czarnecki<EMAIL_ADDRESS>wrote:
Thanks for the PR. However you can simply switch to use the forecast-ruby gem. This is the official Ruby library. I'll make a note in the README for people to use that library instead.
—
Reply to this email directly or view it on GitHub.

Actually nm - it's right, not sure where I got the link to the old gem :)

On Dec 21, 2015, at 6:33 PM, David Czarnecki<EMAIL_ADDRESS>wrote:
Closed #1.
—
Reply to this email directly or view it on GitHub.


Generated Wrapper calls Marshal.GetNativeVariantForObject which is not supported

I was working with WebView2 COM wrappers and encountered an issue where calling CoreWebView2.AddHostObjectToScript which produces the following output
System.NotSupportedException: Built-in COM has been disabled via a feature switch. See https://aka.ms/dotnet-illink/com for more information.
   at System.Runtime.InteropServices.Marshal.GetNativeVariantForObject(Object obj, IntPtr pDstNativeVariant)
   at WinFormsComInterop.WebView2.ICoreWebView2Wrapper.webview2::Microsoft.Web.WebView2.Core.Raw.ICoreWebView2.AddHostObjectToScript(String name, Object& object)
   at Microsoft.Web.WebView2.Core.CoreWebView2.AddHostObjectToScript(String name, Object rawObject)

I assume COM wrappers source generator unintentionally emits a call into this method instead of using ComWrappers-specific code.

I’m not sure that
A) you are using correct ComWrappers instance and
B) I have support only for Net 7. Have to finish interface implementation for Net 8 which is tiresome
can you tell me what TFM are you targeting? And how do you enable ComWrappers?

Looks like I was targeting net 8 as it has somewhat working  built-in ComWrappers source generator. Probably would have to wait for you to add support of net 8.

An update for this issue. I had to write a source generator for IDispatch COM interface implementation and to get around that exception from Marshal.GetNativeVariantForObject, call ICoreWebView2 directly.


control-plane-operator/controllers/hostedcontrolplane: Align reconcileCloudControllerManager error strings

What this PR does / why we need it:
Using hcp.Spec.Platform.Type to avoid things like claiming "Kubevirt" for an AWS service account.  Also spell out "ccm" in "ccm deployment" on AWS and Kubevirt to match the existing phrasing for PowerVS.
Checklist

[x] Subject and description added to both, commit and PR.
[x] Relevant issues have been referenced.
[n/a] This change includes docs.
[n/a] This change includes unit tests.

Is there a Jira card for this?
https://hypershift-docs.netlify.app/contribute/ - Creating a Pull Request, 4.

thanks!
/approve
/lgtm


conflicting statements in this page

In the important info banner you give the hint that it is recommend to have Exchange Full Classic Hybrid configured for the Teams calendar integration, otherwise it wont work.
But in the "Requirements to create and view meetings for mailboxes hosted on-premises" area you write "OAuth authentication is configured preferably via the Exchange Hybrid Configuration Wizard running a full hybrid configuration (Classic or Modern). If you are not able to use the Hybrid Configuration Wizard, configure OAuth as described in Configure OAuth authentication between Exchange and Exchange Online organizations."
What is the correct statement for the current state of implementation in this case?

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

ID: 8456689d-6f04-fa5e-4f51-f413cb0b9d89
Version Independent ID: e9b85126-0db7-4378-ad44-514e52f9fde1
Content: How Exchange and Microsoft Teams interact - Microsoft Teams
Content Source: Teams/Exchange-Teams-interact.md
Service: msteams
GitHub Login: @dstrome
Microsoft Alias: dstrome

Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.

Hi, I dont need a support case, I just want a clarification which statement is correct, because I need a valid statement to provide to our customers. So please research in which part of the text it is stated wrong

Hi @SRE93, sorry for the delay.
As per my comment in the other issue, these sentences could be confusing but the second one is talking about OAuth. You can have it configured either using a classic or modern hybrid. If you are using modern, Autodiscover and EWS won't be published externally. You'll have to publish them to support Team calendar integration, not the hybrid configuration, but avoiding publishing services to the Internet is the main advantage of the modern hybrid.
That's why we highly recommend a full classic hybrid to support Teams calendar integration. You'll meet all the requirements under the section "Requirements to create and view meetings for mailboxes hosted on-premises" by default, no additional/manual configurations are required.


v0.4.1 Adding a 3rd Validator to a running Network seems to not work

Adding a 3rd Validator to a running Network seems to not work
Description
After adding a third Validator to a running network I get the following logs.
Querying the IBFT Snapshot before adding the 2nd validator:

Validator 1 logs:

Validator 2 logs:

Querying the IBFT Snapshot before adding the 3rd validator:

Validator 1 logs:

Validator 2 logs:

Validator 3 logs, after pulling the chain's blocks:

When I query the IBFT Snapshot , the third Validator is not in the Validators list.

Your environment

OS and version: Kubernetes GCP/EKS
version of the Polygon Edge: v0.4.1
branch that causes this issue: NA

Steps to reproduce
Previously in v0.3.3 the following flow work for any number of Validators.

Create a network with 1 Validator Node.
Add a second Validator and start the node, let them sync.
Add a third Validator and start the node.
Check the logs.

Expected behaviour
The third Validator should be added as a Validator and when running a query to get the IBFT Snapshot it should be in the list.
Actual behaviour
The third Validator does pull blocks from its peers but it seems to be not acting as Validator.
Logs
Please paste any logs here that demonstrate the issue, if they exist
Proposed solution
NA

Just to clarify, my setup has an automated process where I take each node and use the GRPC endpoint for voting. I tested this downgrading the version to v0.3.3 and the process works.

@inglkruiz Hey,
I was not able to reproduce this issue on the latest develop branch.
When you started the 3rd node have you voted him from 1st and 2nd?

@Aleksao998
Yes, before starting the node, the algorithm I have gets the 2 validators and using a NestJs(NodeJs) GRPC client I built then votes for adding the node to the network. I think I could capture the response of ibft candidates after voting with the 2nd validator and bring it here. Just to highlight, you can read in the logs I shared current snapshot: validators=2 votes=1 which could be seen as a failure in the voting round algorithm I have, but it’s not the case because as soon as I change the nodes to version 0.3.3. the process works.
You mentioned you used latest develop branch but please, could you verify using 0.4.1. That’s what I offer to my clients.

Hi @inglkruiz
I've checked this issue on release 0.4.1 and i can not reproduce it.
What I did:

Created network with 1 node and started network
Created and started node-2 (still non-validator, not participating in the consensus)
Voted for node 2 to become a validator (from node 1), checked logs node-2 started participating in the network
Created and started node-3 (still non-validator, not participating in the consensus)
Voted from node 3 to become a validator (from node-2 and node-3), checked logs node-3 started participating in the network

Hey @inglkruiz,
Judging by the logs you've provided, are you sure you've voted with both nodes to add a third validator node?
If you grab the snapshot data, you'll see that you only have one vote present, instead of the two needed for voting in a third validator.

I just want to clarify something as well, you need to have more than half your validator set cast a vote to add / remove another node from the validator set:
https://github.com/0xPolygon/polygon-edge/blob/7dcf1f66213740cb37ecea22d5015f7c2097042d/consensus/ibft/poa.go#L182-L183

Hi @Aleksao998
I tried it again using the automated process we built. Sorry for not doing it manually as you recommended but it's because in the platform we are building Polygon Edge must work using the components we are building. I can report that just changing the version from 0.3.3 to 0.4.1 is not giving the result we expect.
I proceeded creating a network in our platform > https://console.settlemint.com/ . The Prod version it's deploying using v0.3.3.

Deploy a Polygon Edge Network
Deploy 3 more Validators, one after the other, not in parallel.

Looking at the Grafana Dashboard I see Validators are connected and mining blocks.

Now, in a personal env (It's like Prod but I can adjust the version to 0.4.1) the result is the following:

The logs of our voting mechanism give us the following:
# Validator 2 is JOINING

[PolygonEdgeService] Starting validator voting, 'true' node 0xc4aDac14cA98d627B4197790cD56682af5cBF731 on network 62d8185e16201e27d2f49631 -> 1 nodes will vote.
[PolygonEdgeService] Using grpc client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632, querying for validator 0xc4aDac14cA98d627B4197790cD56682af5cBF731
[PolygonEdgeService] Snapshot from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
{
  "validators": [
    {
      "address": "0x1c763d638d27CA832d67961A114a59a5D56417eD"
    }
  ],
  "hash": "0xc3b003c28c5cc0287e8bc616d286b1625dbebd30067824bde9e1d8584124f752"
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Voting via staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Proposing from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632 > 0xc4aDac14cA98d627B4197790cD56682af5cBF731 > true
[PolygonEdgeService] Canditates from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
{
  "candidates": [
    {
      "address": "0xc4aDac14cA98d627B4197790cD56682af5cBF731",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632

# Validator 3 is JOINING

[PolygonEdgeService] Starting validator voting, 'true' node 0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc on network 62d8185e16201e27d2f49631 -> 2 nodes will vote.
[PolygonEdgeService] Using grpc client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632, querying for validator 0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc
[PolygonEdgeService] Snapshot from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
{
  "validators": [
    {
      "address": "0x1c763d638d27CA832d67961A114a59a5D56417eD"
    },
    {
      "address": "0xc4aDac14cA98d627B4197790cD56682af5cBF731"
    }
  ],
  "number": {
    "low": 13,
    "high": 0,
    "unsigned": true
  },
  "hash": "0x55c2ec567e2fe66782dc2a0d41ddca3a63b12dde86d698d734ca616dde717ccc"
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Voting via staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Proposing from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632 > 0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc > true
[PolygonEdgeService] Canditates from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
{
  "candidates": [
    {
      "address": "0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Voting via staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632
[PolygonEdgeService] Proposing from staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632 > 0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc > true
[PolygonEdgeService] Canditates from staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632
{
  "candidates": [
    {
      "address": "0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632

# Validator 4 is JOINING

[PolygonEdgeService] Starting validator voting, 'true' node 0x7A2F17aD31757388e6A966fA1fE6AA9c32993660 on network 62d8185e16201e27d2f49631 -> 3 nodes will vote.
[PolygonEdgeService] Using grpc client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632, querying for validator 0x7A2F17aD31757388e6A966fA1fE6AA9c32993660
[PolygonEdgeService] Snapshot from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
{
  "validators": [
    {
      "address": "0x1c763d638d27CA832d67961A114a59a5D56417eD"
    },
    {
      "address": "0xc4aDac14cA98d627B4197790cD56682af5cBF731"
    }
  ],
  "number": {
    "low": 15,
    "high": 0,
    "unsigned": true
  },
  "hash": "0xeec14e6a8555713ce081916dfa61daafc4ee823bb8d5e502f6639336d19d03ad",
  "votes": [
    {
      "validator": "0x1c763d638d27CA832d67961A114a59a5D56417eD",
      "proposed": "0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Voting via staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Proposing from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632 > 0x7A2F17aD31757388e6A966fA1fE6AA9c32993660 > true
[PolygonEdgeService] Canditates from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
{
  "candidates": [
    {
      "address": "0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc",
      "auth": true
    },
    {
      "address": "0x7A2F17aD31757388e6A966fA1fE6AA9c32993660",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Voting via staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632
[PolygonEdgeService] Proposing from staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632 > 0x7A2F17aD31757388e6A966fA1fE6AA9c32993660 > true
[PolygonEdgeService] Canditates from staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632
{
  "candidates": [
    {
      "address": "0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc",
      "auth": true
    },
    {
      "address": "0x7A2F17aD31757388e6A966fA1fE6AA9c32993660",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632
[PolygonEdgeService] Voting via staging-luisedge02-val03-bf21.staging-luisedge02-val03-bf21.svc.cluster.local:9632
[PolygonEdgeService] Proposing from staging-luisedge02-val03-bf21.staging-luisedge02-val03-bf21.svc.cluster.local:9632 > 0x7A2F17aD31757388e6A966fA1fE6AA9c32993660 > true
[PolygonEdgeService] Canditates from staging-luisedge02-val03-bf21.staging-luisedge02-val03-bf21.svc.cluster.local:9632
{
  "candidates": [
    {
      "address": "0x7A2F17aD31757388e6A966fA1fE6AA9c32993660",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val03-bf21.staging-luisedge02-val03-bf21.svc.cluster.local:9632

As you can see, when the Validator 4 is JOINING there is a vote in the votes Array and that should not happen because our process take each Validator and cast votes, there are no possibilities that it's skipping one.
Finally, my 4th Validator logs:

Just to clarify, our deployment process runs the voting round first and after casting all votes it deploys the Polygon Edge Validator node.

Hey @inglkruiz,
Judging by the logs you've provided, are you sure you've voted with both nodes to add a third validator node?
If you grab the snapshot data, you'll see that you only have one vote present, instead of the two needed for voting in a third validator.

Yes, exactly. From the logs one could think I have an error in the mechanism but I can assure you that just upgrading the version changes the result, I'm 100% sure. For example, you can read here
PolygonEdgeService] Starting validator voting, 'true' node 0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc on network 62d8185e16201e27d2f49631 -> 2 nodes will vote.
[PolygonEdgeService] Using grpc client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632, querying for validator 0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc
[PolygonEdgeService] Snapshot from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
{
  "validators": [
    {
      "address": "0x1c763d638d27CA832d67961A114a59a5D56417eD"
    },
    {
      "address": "0xc4aDac14cA98d627B4197790cD56682af5cBF731"
    }
  ],
  "number": {
    "low": 13,
    "high": 0,
    "unsigned": true
  },
  "hash": "0x55c2ec567e2fe66782dc2a0d41ddca3a63b12dde86d698d734ca616dde717ccc"
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Voting via staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Proposing from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632 > 0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc > true
[PolygonEdgeService] Canditates from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
{
  "candidates": [
    {
      "address": "0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Voting via staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632
[PolygonEdgeService] Proposing from staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632 > 0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc > true
[PolygonEdgeService] Canditates from staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632
{
  "candidates": [
    {
      "address": "0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val02-292f.staging-luisedge02-val02-292f.svc.cluster.local:9632

I'm using 2 Validators when the 3rd Validator is joining.
Here, the logs of the 1st Validator:
2022-07-20T15:05:31.020Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=0
2022-07-20T15:05:31.021Z [INFO]  polygon.consensus.ibft.acceptState: we are the proposer: block=15
2022-07-20T15:05:31.021Z [INFO]  polygon.consensus.ibft: executed txns: failed =0 successful=0 remaining in pool=0
2022-07-20T15:05:31.022Z [INFO]  polygon.consensus.ibft: build block: number=15 txns=0
2022-07-20T15:05:31.023Z [INFO]  polygon.consensus.ibft: state change: new=ValidateState
2022-07-20T15:05:31.033Z [INFO]  polygon.consensus.ibft: state change: new=CommitState
2022-07-20T15:05:31.034Z [INFO]  polygon.blockchain: write block: num=15 parent=0x627bc237ba1420de4a6d932a556919f3ef2306bc9a7b218784f5ea6a761da9e0
2022-07-20T15:05:31.035Z [INFO]  polygon.blockchain: new block: number=15 hash=0xeec14e6a8555713ce081916dfa61daafc4ee823bb8d5e502f6639336d19d03ad txns=0 generation_time_in_seconds=51
2022-07-20T15:05:31.035Z [INFO]  polygon.consensus.ibft: block committed: sequence=15 hash=0xeec14e6a8555713ce081916dfa61daafc4ee823bb8d5e502f6639336d19d03ad validators=2 rounds=4 committed=2
2022-07-20T15:05:31.035Z [INFO]  polygon.consensus.ibft: state change: new=AcceptState
2022-07-20T15:05:31.035Z [INFO]  polygon.consensus.ibft.acceptState: Accept state: sequence=16 round=1
2022-07-20T15:05:31.035Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=1
2022-07-20T15:05:31.035Z [INFO]  polygon.consensus.ibft: proposer calculated: proposer=0xc4aDac14cA98d627B4197790cD56682af5cBF731 block=16
2022-07-20T15:05:41.036Z [INFO]  polygon.consensus.ibft: unable to read new message from the message queue: timeout expired=10s
2022-07-20T15:05:41.036Z [INFO]  polygon.consensus.ibft: state change: new=RoundChangeState
2022-07-20T15:05:53.038Z [INFO]  polygon.consensus.ibft: unable to read new message from the message queue: timeout expired=12s
2022-07-20T15:06:07.040Z [INFO]  polygon.consensus.ibft: unable to read new message from the message queue: timeout expired=14s
2022-07-20T15:06:22.025Z [INFO]  polygon.consensus.ibft: state change: new=AcceptState
2022-07-20T15:06:22.025Z [INFO]  polygon.consensus.ibft.acceptState: Accept state: sequence=16 round=4
2022-07-20T15:06:22.025Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=1
2022-07-20T15:06:22.025Z [INFO]  polygon.consensus.ibft.acceptState: we are the proposer: block=16
2022-07-20T15:06:22.026Z [INFO]  polygon.consensus.ibft: executed txns: failed =0 successful=0 remaining in pool=0
2022-07-20T15:06:22.026Z [INFO]  polygon.consensus.ibft: build block: number=16 txns=0
2022-07-20T15:06:22.028Z [INFO]  polygon.consensus.ibft: state change: new=ValidateState
2022-07-20T15:06:22.042Z [INFO]  polygon.consensus.ibft: state change: new=CommitState
2022-07-20T15:06:22.043Z [INFO]  polygon.blockchain: write block: num=16 parent=0xeec14e6a8555713ce081916dfa61daafc4ee823bb8d5e502f6639336d19d03ad
2022-07-20T15:06:22.045Z [INFO]  polygon.blockchain: new block: number=16 hash=0x256a5fe211267567679646d4f1e65e90e64a91010064855ff48d6a14c61c4cee txns=0 generation_time_in_seconds=51
2022-07-20T15:06:22.045Z [INFO]  polygon.consensus.ibft: block committed: sequence=16 hash=0x256a5fe211267567679646d4f1e65e90e64a91010064855ff48d6a14c61c4cee validators=2 rounds=4 committed=2
2022-07-20T15:06:22.045Z [INFO]  polygon.consensus.ibft: state change: new=AcceptState
2022-07-20T15:06:22.045Z [INFO]  polygon.consensus.ibft.acceptState: Accept state: sequence=17 round=1
2022-07-20T15:06:22.045Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=1
2022-07-20T15:06:22.046Z [INFO]  polygon.consensus.ibft: proposer calculated: proposer=0xc4aDac14cA98d627B4197790cD56682af5cBF731 block=17
2022-07-20T15:06:25.315Z [INFO]  polygon.network: Peer connected: id=16Uiu2HAmFhLj6vDvEP5pR9jDczDXqaoAy3f4sD7kAELbKwtD3PWY

And the 2nd Validator:
2022-07-20T15:05:31.020Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=0
2022-07-20T15:05:31.021Z [INFO]  polygon.consensus.ibft: proposer calculated: proposer=0x1c763d638d27CA832d67961A114a59a5D56417eD block=15
2022-07-20T15:05:31.027Z [INFO]  polygon.consensus.ibft: state change: new=ValidateState
2022-07-20T15:05:31.035Z [INFO]  polygon.consensus.ibft: state change: new=CommitState
2022-07-20T15:05:31.036Z [INFO]  polygon.blockchain: write block: num=15 parent=0x627bc237ba1420de4a6d932a556919f3ef2306bc9a7b218784f5ea6a761da9e0
2022-07-20T15:05:31.037Z [INFO]  polygon.blockchain: new block: number=15 hash=0xeec14e6a8555713ce081916dfa61daafc4ee823bb8d5e502f6639336d19d03ad txns=0 generation_time_in_seconds=51
2022-07-20T15:05:31.037Z [INFO]  polygon.consensus.ibft: block committed: sequence=15 hash=0xeec14e6a8555713ce081916dfa61daafc4ee823bb8d5e502f6639336d19d03ad validators=2 rounds=4 committed=2
2022-07-20T15:05:31.038Z [INFO]  polygon.consensus.ibft: state change: new=AcceptState
2022-07-20T15:05:31.038Z [INFO]  polygon.consensus.ibft.acceptState: Accept state: sequence=16 round=1
2022-07-20T15:05:31.038Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=1
2022-07-20T15:05:31.039Z [INFO]  polygon.consensus.ibft.acceptState: we are the proposer: block=16
2022-07-20T15:05:31.039Z [INFO]  polygon.consensus.ibft: executed txns: failed =0 successful=0 remaining in pool=0
2022-07-20T15:05:31.040Z [INFO]  polygon.consensus.ibft: build block: number=16 txns=0
2022-07-20T15:05:46.004Z [INFO]  polygon.consensus.ibft: state change: new=ValidateState
2022-07-20T15:05:56.005Z [INFO]  polygon.consensus.ibft: unable to read new message from the message queue: timeout expired=10s
2022-07-20T15:05:56.005Z [INFO]  polygon.consensus.ibft: state change: new=RoundChangeState
2022-07-20T15:05:56.006Z [INFO]  polygon.consensus.ibft: state change: new=AcceptState
2022-07-20T15:05:56.006Z [INFO]  polygon.consensus.ibft.acceptState: Accept state: sequence=16 round=2
2022-07-20T15:05:56.006Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=1
2022-07-20T15:05:56.007Z [INFO]  polygon.consensus.ibft: proposer calculated: proposer=0x1c763d638d27CA832d67961A114a59a5D56417eD block=16
2022-07-20T15:06:08.008Z [INFO]  polygon.consensus.ibft: unable to read new message from the message queue: timeout expired=12s
2022-07-20T15:06:08.009Z [INFO]  polygon.consensus.ibft: state change: new=RoundChangeState
2022-07-20T15:06:08.012Z [INFO]  polygon.consensus.ibft: state change: new=AcceptState
2022-07-20T15:06:08.012Z [INFO]  polygon.consensus.ibft.acceptState: Accept state: sequence=16 round=3
2022-07-20T15:06:08.013Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=1
2022-07-20T15:06:08.015Z [INFO]  polygon.consensus.ibft.acceptState: we are the proposer: block=16
2022-07-20T15:06:08.015Z [INFO]  polygon.consensus.ibft: executed txns: failed =0 successful=0 remaining in pool=0
2022-07-20T15:06:08.016Z [INFO]  polygon.consensus.ibft: build block: number=16 txns=0
2022-07-20T15:06:08.020Z [INFO]  polygon.consensus.ibft: state change: new=ValidateState
2022-07-20T15:06:22.021Z [INFO]  polygon.consensus.ibft: unable to read new message from the message queue: timeout expired=14s
2022-07-20T15:06:22.021Z [INFO]  polygon.consensus.ibft: state change: new=RoundChangeState
2022-07-20T15:06:22.023Z [INFO]  polygon.consensus.ibft: state change: new=AcceptState
2022-07-20T15:06:22.023Z [INFO]  polygon.consensus.ibft.acceptState: Accept state: sequence=16 round=4
2022-07-20T15:06:22.023Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=1
2022-07-20T15:06:22.023Z [INFO]  polygon.consensus.ibft: proposer calculated: proposer=0x1c763d638d27CA832d67961A114a59a5D56417eD block=16
2022-07-20T15:06:22.033Z [INFO]  polygon.consensus.ibft: state change: new=ValidateState
2022-07-20T15:06:22.041Z [INFO]  polygon.consensus.ibft: state change: new=CommitState
2022-07-20T15:06:22.045Z [INFO]  polygon.blockchain: write block: num=16 parent=0xeec14e6a8555713ce081916dfa61daafc4ee823bb8d5e502f6639336d19d03ad
2022-07-20T15:06:22.049Z [INFO]  polygon.blockchain: new block: number=16 hash=0x256a5fe211267567679646d4f1e65e90e64a91010064855ff48d6a14c61c4cee txns=0 generation_time_in_seconds=51
2022-07-20T15:06:22.049Z [INFO]  polygon.consensus.ibft: block committed: sequence=16 hash=0x256a5fe211267567679646d4f1e65e90e64a91010064855ff48d6a14c61c4cee validators=2 rounds=4 committed=2
2022-07-20T15:06:22.049Z [INFO]  polygon.consensus.ibft: state change: new=AcceptState
2022-07-20T15:06:22.050Z [INFO]  polygon.consensus.ibft.acceptState: Accept state: sequence=17 round=1
2022-07-20T15:06:22.050Z [INFO]  polygon.consensus.ibft: current snapshot: validators=2 votes=1
2022-07-20T15:06:22.051Z [INFO]  polygon.consensus.ibft.acceptState: we are the proposer: block=17
2022-07-20T15:06:22.051Z [INFO]  polygon.consensus.ibft: executed txns: failed =0 successful=0 remaining in pool=0
2022-07-20T15:06:22.052Z [INFO]  polygon.consensus.ibft: build block: number=17 txns=0
2022-07-20T15:06:25.374Z [INFO]  polygon.network: Peer connected: id=16Uiu2HAmFhLj6vDvEP5pR9jDczDXqaoAy3f4sD7kAELbKwtD3PWY

Some more info, I took a snapshot after deploying 4 Validators and I can see what @zivkovicmilos mentioned, I have 2 votes from the 1st validator in the votes Array. IMO, there's something fishy when waiting for the other votes.
[PolygonEdgeService] Snapshot from staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
{
  "validators": [
    {
      "address": "0x1c763d638d27CA832d67961A114a59a5D56417eD"
    },
    {
      "address": "0xc4aDac14cA98d627B4197790cD56682af5cBF731"
    }
  ],
  "number": {
    "low": 21,
    "high": 0,
    "unsigned": true
  },
  "hash": "0xdfc7c1c4de720c5aafd1daa3f5d99e00cf3738e0216768c64b8c2def3681ad12",
  "votes": [
    {
      "validator": "0x1c763d638d27CA832d67961A114a59a5D56417eD",
      "proposed": "0x4B4F97f8710F16604d3e6EAc4e3f54886d156ffc",
      "auth": true
    },
    {
      "validator": "0x1c763d638d27CA832d67961A114a59a5D56417eD",
      "proposed": "0x7A2F17aD31757388e6A966fA1fE6AA9c32993660",
      "auth": true
    }
  ]
}
[PolygonEdgeService] Closing GRPC client for staging-luisedge02-val01-68fc.staging-luisedge02-val01-68fc.svc.cluster.local:9632
[PolygonEdgeService] Validator node with address 0x7A2F17aD31757388e6A966fA1fE6AA9c32993660 is not in the IBFT snapshot.

Hey @inglkruiz,
Sorry for the late reply on this, it's been kind of hectic for the past week.
Can you please give me the exact commands you use to introduce a 3rd validator?
From the logs you've provided, you're only voting once (at least that's what it says, that 1 vote is present, not 2)

Please make sure that you are adding votes in the following way:
To submit 2 unique votes:
polygon-edge ibft propose --addr <VALIDATOR_3_ADDR> --vote auth --grpc-address <GRPCADDRESS_NODE_1>:port
polygon-edge ibft propose --addr <VALIDATOR_3_ADDR> --vote auth --grpc-address <GRPCADDRESS_NODE_2>:port
Note that the grpc addresses are different for the 2 commands, you want to execute an ibft propose command on one validator, and execute another one on the other validator, this way you'll have 2 unique validators casting votes for the 3rd node

Hi @zivkovicmilos
Considering this new param in the RPC message > --grpc-address (I said new because I did not know about it) and the message description >
message Candidate {
    string address = 1;
    bool auth = 2;
}

OR maybe in this one,
message ProposeReq {
    string address = 1;
    bool auth = 2;
}

I believe I will need to add the param string grpcAddress = 3 but looking at the code here > https://github.com/0xPolygon/polygon-edge/blob/v0.4.1/consensus/ibft/operator_service.go#L103-L147 I cannot see how the propose method handles that parameter.
I have built a GRPC client (using NestJS) relying on the proto files so if this is a new param I'd suggest adding it.
WDYT?

@inglkruiz Would you mind sharing what npm package for gRPC client do you use?

@Kourin1996 I'm using the NestJS framework, you can read the gRPC docs here > https://docs.nestjs.com/microservices/grpc and for creating the gRPC client I'm using a Factory also provided by the framework's package read here

Hello @inglkruiz !
Unfortunately, we are unable to assist with an issue with the 3rd party scripts without having full access to team.
If you are unable to provide the scripts, the only thing I can suggest is to re-implement them with the current protobuffer definition files.
From the perspective of Polygon Edge, the validator voting is thoroughly tested and fully functional, which is why we suspect the problem lies with the script that we don't have access to.
Thank you

Hi @Kourin1996 @laviniat1996 @zivkovicmilos,
Thanks for taking the time to answer and review this issue.
I have good news, in an attempt to challenge the way I run the voting round I decided to move the process after the new validator is deployed and running, that precise move fixed the issue though I'm not using v0.4.1 but v0.5.0.
Just for the record and for anyone coming here, lesson learnt:

When adding a new Validator node, first deploy it and only after it's running, run the voting round using each Validator node. Running the voting round before deploying the new Validator node from my experience does halt the network, using v0.5.0.

Hey @inglkruiz,
Just wanted to clarify this segment:

Running the voting round before deploying the new Validator node from my experience does halt the network, using v0.5.0.

The network doesn't halt - you validator nodes expect the offline validator to propose a block, and until they propose a block they wait for feedback. If the validator (who is offline) doesn't propose a block in a given time period (depending on the round, base round 0 is 10s), they do a round change protocol and pick a new proposer - then your network stars chugging along.
This is just how the IBFT consensus protocol works


Use TileSet navigation layer layers when TileMap generates navigation polygons

Prior to this change, TileSet::get_navigation_layer_layers was not used outside of TileSet.

This pr alone will not close the linked issue that Bugsquad edited. This pr fixes that the TileSet navigation_layers bitmask GUI had no effect.

Ah my bad, I thought it would. Removed the edit.

Needs a rebase to resolve the merge conflict (region_set_navpoly was renamed to region_set_navigation_polygon).

Thanks! And congrats for your first merged Godot contribution :tada:


Implement Dynamic-Module

Description
Addition of new feature where side module tab is spawned and despawned dynamically whenever a program is ran. Part of Module project.
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[X] This change requires a documentation update
[ ] Code quality improvements

Checklist
Please delete options that are not relevant.

[X] I have tested this code
[X] I have updated the documentation

The wiki are at: https://github.com/source-academy/cadet-frontend/wiki/Dynamic-Module

Pull Request Test Coverage Report for Build 6115

12 of 90 (13.33%)  changed or added relevant lines in 12 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 35.11%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/commons/workspace/WorkspaceReducer.ts
0
1
0.0%

src/pages/academy/grading/subcomponents/GradingWorkspace.tsx
0
4
0.0%

src/pages/sourcecast/Sourcecast.tsx
0
4
0.0%

src/commons/assessmentWorkspace/AssessmentWorkspace.tsx
0
5
0.0%

src/pages/academy/sourcereel/Sourcereel.tsx
0
5
0.0%

src/pages/playground/Playground.tsx
0
7
0.0%

src/commons/editingWorkspace/EditingWorkspace.tsx
0
11
0.0%

src/commons/sideContent/SideContentHelper.ts
6
18
33.33%

src/commons/sideContent/SideContent.tsx
1
30
3.33%

Files with Coverage Reduction
New Missed Lines
%

src/commons/sideContent/SideContent.tsx
1
2.22%

Totals

Change from base Build 5924:
-0.2%

Covered Lines:
1852

Relevant Lines:
4886

💛  - Coveralls


(Customer 39) OrientDB Server shutdown doesn't complete in a timely manner

Hi @lvca @enisher @laa
CC @mattaylor @henryzhao81 @hcmwork @stuartking @pmoorhead
Version: OrientDB 1.7.4
Frequency: 5 incidents across 2 servers in 2 days
Steps to Reproduce:
service orientdb stop

which effectively executes...
cd "$ORIENTDB_DIR/bin"
/usr/bin/nohup ${ORIENTDB_DIR}/bin/shutdown.sh 1>${ORIENTDB_DIR}/log/orientdb.log 2> ${ORIENTDB_DIR}/log/orientdb.err
```

**INCIDENT 1** happened on Server 1 running OrientDB 1.7.4
```
+ service orientdb stop
Stopping OrientDB server daemon.. (running as root)
tail: /opt/orient/log/orientdb.err: file truncated
Aug 27, 2014 1:24:55 AM com.orientechnologies.common.log.OLogManager log
INFO: Loading configuration from: /opt/orient/config/orientdb-server-config.xml...
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
...
2014-08-27 01:24:56:003 WARN Reached maximum number of concurrent connections (1000), reject incoming connection from /<IP_ADDRESS>:36168 [OServerNetworkListener]
2014-08-27 01:25:00:910 WARN Low free heap memory (11%): reducing cached records number from 4 to 3 [ODefaultCache$OLowMemoryListener]
...
```

**INCIDENT 2** happened on Server 1 running OrientDB 1.7.4
```
+ service orientdb stop
Stopping OrientDB server daemon.. (running as root)
tail: /opt/orient/log/orientdb.err: file truncated
Aug 27, 2014 7:02:54 AM com.orientechnologies.common.log.OLogManager log
...
2014-08-27 07:02:55:485 INFO - storage: pharos... [Orient]
2014-08-27 07:02:55:488 WARN Repairing security structures... [OSecurityShared]
2014-08-27 07:02:55:488 WARN Repair completed [OSecurityShared]Please wait 5 seconds...
Please wait 5 seconds...
Please wait 5 seconds...
Please wait 5 seconds...
Please wait 5 seconds...
Please wait 5 seconds...
Please wait 5 seconds...
Please wait 5 seconds...

2014-08-27 07:03:34:551 SEVE 	at java.lang.Thread.getStackTrace(Thread.java:1589)
	at com.orientechnologies.common.concur.resource.OSharedResourceAdaptive.acquireExclusiveLock(OSharedResourceAdaptive.java:119)
	at com.orientechnologies.common.concur.resource.OSharedResourceAdaptiveExternal.acquireExclusiveLock(OSharedResourceAdaptiveExternal.java:31)
	at com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.doClose(OLocalPaginatedStorage.java:1931)
	at com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage.close(OLocalPaginatedStorage.java:340)
	at com.orientechnologies.orient.core.storage.OStorageAbstract.close(OStorageAbstract.java:106)
	at com.orientechnologies.orient.core.db.raw.ODatabaseRaw.close(ODatabaseRaw.java:516)
	at com.orientechnologies.orient.core.db.ODatabaseWrapperAbstract.close(ODatabaseWrapperAbstract.java:81)
...
```

**INCIDENT 3** happened on Server 1 running OrientDB 1.7.4
```
+ service orientdb stop
Stopping OrientDB server daemon.. (running as root)
tail: /opt/orient/log/orientdb.err: file truncated
Aug 27, 2014 9:20:06 AM com.orientechnologies.common.log.OLogManager log
INFO: Loading configuration from: /opt/orient/config/orientdb-server-config.xml...
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:77)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:57)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClientSynch.<init>(OChannelBinaryAsynchClientSynch.java:32)
	at com.orientechnologies.orient.server.OServerShutdownMain.connect(OServerShutdownMain.java:103)
	at com.orientechnologies.orient.server.OServerShutdownMain.main(OServerShutdownMain.java:135)
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:77)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:57)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClientSynch.<init>(OChannelBinaryAsynchClientSynch.java:32)
	at com.orientechnologies.orient.server.OServerShutdownMain.connect(OServerShutdownMain.java:103)
	at com.orientechnologies.orient.server.OServerShutdownMain.main(OServerShutdownMain.java:135)
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:77)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:57)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClientSynch.<init>(OChannelBinaryAsynchClientSynch.java:32)
	at com.orientechnologies.orient.server.OServerShutdownMain.connect(OServerShutdownMain.java:103)
	at com.orientechnologies.orient.server.OServerShutdownMain.main(OServerShutdownMain.java:135)
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:77)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:57)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClientSynch.<init>(OChannelBinaryAsynchClientSynch.java:32)
	at com.orientechnologies.orient.server.OServerShutdownMain.connect(OServerShutdownMain.java:103)
	at com.orientechnologies.orient.server.OServerShutdownMain.main(OServerShutdownMain.java:135)
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:77)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:57)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClientSynch.<init>(OChannelBinaryAsynchClientSynch.java:32)
	at com.orientechnologies.orient.server.OServerShutdownMain.connect(OServerShutdownMain.java:103)
	at com.orientechnologies.orient.server.OServerShutdownMain.main(OServerShutdownMain.java:135)
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:77)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:57)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClientSynch.<init>(OChannelBinaryAsynchClientSynch.java:32)
	at com.orientechnologies.orient.server.OServerShutdownMain.connect(OServerShutdownMain.java:103)
	at com.orientechnologies.orient.server.OServerShutdownMain.main(OServerShutdownMain.java:135)
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:77)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:57)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClientSynch.<init>(OChannelBinaryAsynchClientSynch.java:32)
	at com.orientechnologies.orient.server.OServerShutdownMain.connect(OServerShutdownMain.java:103)
	at com.orientechnologies.orient.server.OServerShutdownMain.main(OServerShutdownMain.java:135)
...
```

**INCIDENT 4** happened on Server 1 running OrientDB 1.7.4
```
+ service orientdb stop
Stopping OrientDB server daemon.. (running as root)
tail: /opt/orient/log/orientdb.err: file truncated
Aug 27, 2014 9:33:11 AM com.orientechnologies.common.log.OLogManager log
INFO: Loading configuration from: /opt/orient/config/orientdb-server-config.xml...
java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:77)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:57)
	at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClientSynch.<init>(OChannelBinaryAsynchClientSynch.java:32)
	at com.orientechnologies.orient.server.OServerShutdownMain.connect(OServerShutdownMain.java:103)
	at com.orientechnologies.orient.server.OServerShutdownMain.main(OServerShutdownMain.java:135)
...
```

**INCIDENT 5** happened on Server 2 running OrientDB 1.7.4
```
+ service orientdb stop
Stopping OrientDB server daemon.. (running as root)
Aug 28, 2014 6:56:22 PM com.orientechnologies.common.log.OLogManager log
INFO: Loading configuration from: /opt/orient/config/orientdb-server-config.xml...
java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:579)
        at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:77)
        at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClient.<init>(OChannelBinaryAsynchClient.java:57)
        at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynchClientSynch.<init>(OChannelBinaryAsynchClientSynch.java:32)
        at com.orientechnologies.orient.server.OServerShutdownMain.connect(OServerShutdownMain.java:103)
        at com.orientechnologies.orient.server.OServerShutdownMain.main(OServerShutdownMain.java:135)
...
```

hi i found a problem with shutdown code introduced in orientdb. Surely it can create a lot of problems in a orientdb cllient hosting in more open system but also in server.
The shutdown in orientdb are not handled directly using java shutdown hook but with SignalHandler.
It gives more possibilities but gives also a side effect. The handlers is executed not following the right order in closing VM.
the right order is .... before VM call all hooks installed, deregistring other handlers, close classes destroying data before to exit ... and then the database connections are closed.
The connections to database might be closed in the ending , not in the beginning of shutdown.
Now it is possible the connections are closed before the VM is completing to destroy data in the VM.

We used signals to catch any possible case to avoid to break the DB. This works well with server and usually clients. Are you using an App Server?

yes i m using orientdb in a server that is making a specific task .... all is ok but when the server is shutdown for any reason, it might save the status of specific running data, so the status can be realoaded correctly at startup.
I added a hook ... but the first problem is i cant know in what order is executed ... so i solved it before patching java hooks handler ... now hooks is executed folling a priorityqueue. So it is executed before to  close other classes (as hanzelcast for example). Solved it remains the problem with orientdb ... when it try to save data it find the connection close anyway because signal handler dont follow hooks.
Pratically the connections are closed before to all... before any hooks, but it might be closed in the ending ... granting the all the logic related a shutdown is executed correctly.
I thought to modify OConnectionManager ... instead to command directly the shutdown when it received the signal ... it add a hook in the end of queue so orientdb shutdown will be executed at the end.

in orientdb version 2.1.1 the file bin/shutdown.sh does not work. The only thing that I can get to work is kill .

@dcarr178 Please could you open a new issue for that?

@lvca I dropped my db and started over which seemed to correct the problem so I cannot reproduce anymore. Will create a new issue if I can reproduce again. The weirdest part was the log file entry that said Error:null.


Clicking on action with further dependencies

Logout
Since logout has no dependencies, pressing enter or clicking is the same.
View User
Since "View User" command has dependencies, I'm expecting when clicking with the mouse to proceed to that dependency asking the user name. Currently, mouse-clicking on "View User" only closes the dialog with no further action. It works properly when pressing enter, but I'm expecting ENTER and Mouseclick to yield the same result, from a UX viewpoint.
Thoughts?

Hi Guys,
I think there is a AlpineJS @click.out mistake.
In order to manage the view in our project and as a consequence the style and classes of it, we need to follow the steps below:
Publish the views:
php artisan vendor:publish
This show a list like this:
Which provider or tag's files would you like to publish?:
[0 ] Publish files from all providers and tags listed below
[X] Tag:  livewire-ui-spotlight-views
Select the tag  "livewire-ui-spotlight-views"
Go to:  /resources/views/vendor/livewire-ui-spotlight and modify the view.
Here is a nice close button example placed in the modal's bottom:

id }}', placeholder: '{{ trans('livewire-ui-spotlight::spotlight.placeholder') }}', commands: {{ $commands }} })"
     x-init="init()"
     x-show="isOpen"
     x-cloak
     @foreach(config('livewire-ui-spotlight.shortcuts') as $key)
        @keydown.window.prevent.cmd.{{ $key }}="toggleOpen()"
        @keydown.window.prevent.ctrl.{{ $key }}="toggleOpen()"
     @endforeach
     @keydown.window.escape="isOpen = false"
     @toggle-spotlight.window="toggleOpen()"
     class="fixed z-50 px-4 pt-16 flex items-start justify-center inset-0 sm:pt-24">

                <svg class="animate-spin h-5 w-5 text-white" xmlns="http://www.w3.org/2000/svg" fill="none"
                     viewBox="0 0 24 24" wire:loading.delay>
                    <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor"
                            stroke-width="4"></circle>
                    <path class="opacity-75" fill="currentColor"
                          d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
                </svg>

            <input @keydown.tab.prevent="" @keydown.prevent.stop.enter="go()" @keydown.prevent.arrow-up="selectUp()"
                   @keydown.prevent.arrow-down="selectDown()" x-ref="input" x-model="input"
                   type="text"
                   style="caret-color: #6b7280; border: 0 !important;"
                   class="appearance-none w-full bg-transparent px-6 py-4 text-gray-300 text-lg placeholder-gray-500 focus:border-0 focus:ring-transparent focus:border-transparent focus:shadow-none outline-none focus:outline-none"
                   x-bind:placeholder="inputPlaceholder">

 0" style="display: none;">

                <template x-for="(item, i) in filteredItems()" :key>

                        <button @click="go(item[0].item.id)" class="block w-full px-6 py-3 text-left"
                                :class="{ 'bg-gray-700': selected === i, 'hover:bg-gray-800': selected !== i }">

                        </button>

                </template>

            <button @click="isOpen = false" class="flex items-center p-2 text-gray-400" name="{{__('Close the search')}}">
                <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
                </svg>
            </button>

And that's all enjoy your coding and have a nice day!!

The only issue is the change of removing line @click.outside="isOpen = false".
@Luigi-DV you want to submit the PR or do I do it?

I resolved it by actually moving the alpine click to the gray background, to close on clicking, very simple.

I resolved it by actually moving the alpine click to the gray background, to close on clicking, very simple.

What if the user is in mobile? idk if it will work with another click event but in my case when I was in a mobile the modal closes on scroll.
Possibly my event selection mistake.

@Luigi-DV tested on mobile, works fine 👍🏼
Concerning the issue with scrolling when the modal is open, you mean scrolling from search results or the main body element?
But that is a whole separate issue :)

@Luigi-DV tested on mobile, works fine 👍🏼
Concerning the issue with scrolling when the modal is open, you mean scrolling from search results or the main body element?
But that is a whole separate issue :)

Yep, nice to heard we resolve this little bug. Hope it will helps others.
Have a nice day ☺

PR merged, closing issue.


[ci] test distributions should be real, valid Python distributions

The project uses some manually-created distributions as test data.
It does that by just writing somme files and bundling them with zip and tar.
https://github.com/jameslamb/pydistcheck/blob/9ad391066b3d9d751714058c28215e6bd98bb508/Makefile#L46-LL53
https://github.com/jameslamb/pydistcheck/blob/9ad391066b3d9d751714058c28215e6bd98bb508/bin/create-test-data.sh
Manually building Python package distributions that way is pretty rare these days. Most packages are built with tools like build, scikit-build, setuptools, or distutils.
This project should use test package distributions that:

are valid Python package distributions
were built with standard Python packaging tools

From the "source distributions" portion of PEP 517

[source distributions from PEP-517-compliant build backends] will be gzipped tar archives, with the .tar.gz extension. Zip archives, or other compression formats for tarballs, are not allowed at present.

But I still think it makes sense for this project to support .zip formats if possible, given that PEP 517 isn't ubiquitous yet.


Upgrading to 1.3.8 caused: sql: Scan error on column index 5, name "condition_name": converting NULL to string is unsupported

Summary
Immediately after upgrading to 1.3.8 from 1.3.7 we started getting internal server errors. Rolling back to 1.3.7 resolved the issue. In the logs we found the error shown below.
OpenFGA version or commit
Immediately after upgrading to 1.3.8
Store data
Other data

docker on AWS ECS
Postgres
Are you running OpenFGA with any configuration overrides or with any of the flags mentioned in ./openfga run --help?
Logs:

Example check request:
2023-12-05T01:11:41.242Z	ERRORrpc error: code = Code(4000) desc = Internal Server Error
{"grpc_service": "openfga.v1.OpenFGAService", "grpc_method": "Check", "grpc_type": "unary", "request_id": "e27dc9cb-d13a-4537-b375-b14fca90fb9a", "user_agent": "openfga-sdk js/0.2.10", "raw_request": {"store_id":"01H92CEC8HDM58GWGEBRWPQHSS","tuple_key":{"user":"user:7fd5822a-5e9d-46cb-b97d-f8669d30ab6e","relation":"manager","object":"site:0a5ecb2e-f9b0-463c-a3b1-df0886465bbd"},"contextual_tuples":{"tuple_keys":[]},"authorization_model_id":"01HGSC2RJ3XT4BM1Q27MH50HC8","trace":false,"context":null}, "raw_response": {"allowed":false,"resolution":""}, "peer.address": "<IP_ADDRESS>:51082", "store_id": "01H92CEC8HDM58GWGEBRWPQHSS", "authorization_model_id": "01HGSC2RJ3XT4BM1Q27MH50HC8", "grpc_code": 4000, "internal_error": "sql: Scan error on column index 5, name \"condition_name\": converting NULL to string is unsupported"}

Example read request:
2023-12-05T01:12:16.355Z	ERROR	rpc error: code = Code(4000) desc = Internal Server Error
{"grpc_service": "openfga.v1.OpenFGAService", "grpc_method": "Read", "grpc_type": "unary", "request_id": "12ea7e39-46b7-4480-9b2c-6fde38a61777", "user_agent": "openfga-sdk js/0.2.10", "raw_request": {"store_id":"01H92CEC8HDM58GWGEBRWPQHSS","tuple_key":{"user":"user:8b1ab6bf-bad7-454a-bb4a-c552ff60a6af","relation":"admin","object":"region:US"},"page_size":1,"continuation_token":""}, "raw_response": {"tuples":[],"continuation_token":""}, "peer.address": "<IP_ADDRESS>:51082", "store_id": "01H92CEC8HDM58GWGEBRWPQHSS", "grpc_code": 4000, "internal_error": "sql: Scan error on column index 5, name \"condition_name\": converting NULL to string is unsupported"}

@jamesharv thanks for the report, working on a fix and added test coverage on #1212

@jamesharv the issue should be resolved in the v1.3.9 release. Could you please upgrade and confirm?


[2.0-wip] Forms

Is somewhere documented how the gray rounded background is achieved in the forms examples?
Please provide some code along with the examples for more clarification.
In the Basic form, i can see that there's a class called "well", and in the Horizontal forms there's a class called "forms-controls" for the buttons. Are these included in TB2 or are they only for the examples?
Thanks

The class .well creates this famous grey inset background. But yes as you noticed it's not documented anywhere and actually I went a while before understanding what was well.less

@Anahkiasen class .well does make this inset background :) that's why i wanted to know both if it's documented somewhere or even if is included in TB2 at all.

Not documented anywhere, and neither is the close link (close.less). Might add those to the docs for 2.0 if I have time.

also, another class name indicating what it is would be nice :)

The well and close icon have been added to the docs. No other class name is necessary for the well.


Reloading Table data after JSON Response

Hi, I am using the ng-tasty sortable server side table in one of my projects. My question is:
I load a data table using the ng-tasty server side plugin.  Everything loads fine and sorting works perfectly by calling the getResource callback method with server side url, say A.
In that same table I have a column which has a link for each row and click of it should call a url say B(and take custom params) and the response of this url will be same JSON as url A which is needed by ngTasty table.
Please let know the way I need to bind the href in the table column and reload the updated data from service call.

Hi @vinsim24, tomorrow I will make a plunker to better show you a complete solution.
For now I want show you a partial one.
Markup

Javascript
$scope.filterBy = {
  'name': ''
};
$scope.getResource = function (params, paramsObj) {
  var urlApi = 'table.json?' + params;
  return $http.get(urlApi).then(function (response) {
    return {
      'rows': response.data.rows,
      'header': response.data.header,
      'pagination': response.data.pagination,
      'sortBy': response.data['sort-by'],
      'sortOrder': response.data['sort-order']
    }
  });
}

Api url
table.json?sort-by=name&sort-order=dsc&page=1&count=5&name=....

So the idea is you can manipulate custom params by the object you passing inside bind-filters, maybe is not the correct name for a good API.
Probably need a better name, because is not just a filter object, in this case every key inside $scope.filterBy is going to be a custom params in your URL.
So that means you can play with that and make your custom B call.
Tomorrow I will make this example easy to understand by a plunker online demo.
Let me know if everything is clear. Or if you have more question about it.
ThankYou for open the issue,
ngTasty is a cool tool but need improvement on the documentation.

@Zizzamia I added the bind-filters and the custom attribute gets added to the API url.  Few more dots missing in this... Will explain the same:
1)Firstly I need to set 3 custom attributes with the content of row as shown below:

            Cancel

$scope.filterBy = {
  'A': '',
  'B': '',
  'C': '',
};
$scope.getResource = function (params, paramsObj) {
  var urlApi = 'table.json?' + params;
  return $http.get(urlApi).then(function (response) {
    return {
      'rows': response.data.rows,
      'header': response.data.header,
      'pagination': response.data.pagination,
      'sortBy': response.data['sort-by'],
      'sortOrder': response.data['sort-order']
    }
  });
}

Is the above approach to set filters right?
2)The page loaded correctly with data in table.
But when I click the cancel link it didnt call the server url and so the table never got reloaded. Is something needs to be added in ng-click so that server url is called and table gets reloaded with the filter data.

The reason does not call the server url is because you just not assign correctly your filterBy variable.
In your template you don't need use $scope to access the AngularJS scope.
// Wrong
Cancel

Instead you should do in this way
// Correct
Cancel

This should fix your problem.
Please let me know if does work.

Suggested changes worked good.
Should be the last one, how do I reload the table on click of a button outside the table, without page being reloaded.

What do you want reload exactly?

The entire content of the table as it would be loaded on page load.

So if you want reset the table to the beginning content, you just need set filterBy empty as was in the beginning.
$scope.filterBy = {
  'A': '',
  'B': '',
  'C': '',
};

Hi @vinsim24 did you still have this problem?

Apologies, I forgot to update. All is good.

#ThankYou


Fix spdx classifier and recipe cleanup

Checklist

[ ] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy
[ ] Ensured the license file is being packaged.

@conda-forge-admin please rerender

@synapticarbors
The repodata.json seems not to have changed with regard to the license (see the image):

I am not quite sure, why this is the case, but builds above 0 don't seem to be included.
Do you know what might be the issue?


[Draft][Unittest][Metal] Add minimal metal functionality test to CI

Prior to this commit, the CI compiled TVM with USE_METAL=ON on OSX, as defined in conda/recipe/build.sh, but did not validate the execution of any generated metal kernels.  As a result, breakage could occur without being caught by the CI, such as found following https://github.com/apache/tvm/pull/15103.
This commit adds the execution of a single metal kernel as a minimal functionality test of the metal backend.

The initial version of this PR has a deliberate failure by asserting that target != "metal".  If the CI updates are implemented correctly, the "CI / MacOS" stage should fail due to this assert, and all other CI tests should pass.  This step is to verify that (1) the updated main.yaml is enabling additional tests, (2) that the CI build for OSX has the metal backend enabled, and (3) that the CI execution for OSX can find a metal-capable device.
After these three items are verified, the assert statement will be removed, and all CI steps including the "CI / MacOS" stage should pass.

Hmm, first time that I've been disappointed to have the CI show green.  The "CI / MacOS" section skipped the Metal test, rather than failing on the assert.

And getting closer.  The "compile-only" test has two versions, one of which defines the PackedFunc "tvm_callback_metal_compile" and one of which does not.  The version that does not define the PackedFunc finishes without error, as it would provide the generated code to the driver at runtime.  The version that does define the PackedFunc has the compilation function called at compile-time.
Now, the final validation of the CI: Generating code in CodeGenMetal that should result in a compile-time error.

And the results look good, with the intentionally-incorrect codegen resulting in a failure found at compile-time of the *.metallib, during execution of the xcrun command.
The intentionally-incorrect codegen is now removed, and the compile-only test should now pass.  Assuming this latest update passes CI, this PR will be marked as ready for review.

And ready for review!


[bug]

What happened?
What should've happened instead?
Additional details

Host system configuration:

Version of cookiecutter CLI (get it with cookiecutter --version):
OS:
Python version:
Docker versions (if using Docker):
...

Options selected and/or replay file:

Logs:

$ cookiecutter https://github.com/pydanny/cookiecutter-django
project_name [Project Name]: ...

I assume this was open by mistake, feel free to reopen if you give more infos.


Didn't see any changes after running ci-mock.sh?

I ran the following command, keeping in mind to use my dockerhub username, and it did push a Docker image with a dev-xxxx tag. What's supposed to happen isn't clear after that.
cd hack && ./ci-mock.sh -r zillag/podinfo -b dev

The walkthrough says

With the fluxcd.io/automated annotations I instruct Flux to automate this release. When a new tag with the prefix dev is pushed to Docker Hub, Flux will update the image field in the yaml file, will commit and push the change to Git and finally will apply the change on the cluster.

Some questions:

Should I create the dev (and stg later) branch first before running the mock script? (I did anyway.)
Should I expect the releases/dev/podinfo.yaml to change in my local repo, and pushed to my remote? IOW, I'm not clear about the interaction between my local files, Git remote, and Kubernetes. There were no steps outlined on what I should check after I run the mock script.

A very strong advise to stop looking into the Helm Operator and continue to look at the helm-controller (and Flux v2 in general), as both Flux v1 and the Helm Operator are in maintenance mode.
Some starter points on automated Helm releases with Flux2:

https://toolkit.fluxcd.io
https://toolkit.fluxcd.io/get-started/
https://toolkit.fluxcd.io/guides/helmreleases/
https://github.com/fluxcd/flux2-kustomize-helm-example

I'll heed your advise, thanks.

In the meantime, is the README.md information in the repo obsolete now? This is my first foray into helm+flux, and although I understand the concept, I'm just now developing my experience.

It is for Flux2, as this was build from the ground up. The Flux2 version of doing things is covered in: https://github.com/fluxcd/flux2-kustomize-helm-example (and https://github.com/fluxcd/flux2-multi-tenancy for multi-tenancy).
We are planning on archiving this repository in the near future to make it more obvious, as we did for the other examples.


Cross compile to Scala 3

Fix https://github.com/SwissBorg/pekko-persistence-postgres/issues/6
Depends on #26

suggestion: in ExtendedPostgresProfile, the type could be MyAPI no? It's strange to use the object's type and shouldn't change the implicits resolution.
  override val api: MyAPI.type = MyAPI


Cannot provision Vagrant

Issue Type

Bug Report / Support Request

Your Environment

Vagrant 2.2.7
VirtualBox 6.1.4r136177
ansible 2.9.7
  config file = None
  configured module search path = [u'/Users/mogio/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /Library/Python/2.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.16 (default, Dec 13 2019, 18:00:32) [GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1<IP_ADDRESS>) (-macos10.15-objc-s

Your OS

macOS (10.15.3)

Full console output

https://gist.github.com/vouza/94f2573e3c632d297354b55132dafd85
Summary

Since OSX Catalina I am not able to provision my "drupal-vm"-vagrant machines.
I tried also different linux versions:
vagrant_box: geerlingguy/ubuntu1804
vagrant_box: geerlingguy/drupal-vm
I can install the machine fine, but as soon as I run vagrant provision, or vagrant up --provision I get this error. It seems that the script stops each time at a different position.
This output shows the drupal console as issue... when I comment out the drupal console it is the next "installed_extra". The error stays the same: "Ansible failed to complete successfully. Any error output should be visible above. Please fix these errors and try again."
I can't even count how often I had to destroy the machine to add anything that cannot be imported via provision.
I am quite lost.
Thanks for any help.
TASK [geerlingguy.drupal-console : Install Drupal Console.] ********************
fatal: [www8-php7-3]: FAILED! => {"changed": false, "dest": "/usr/local/bin/drupal", "elapsed": 10, "gid": 0, "group": "root", "mode": "0755", "msg": "Request failed: <urlopen error [Errno -3] Temporary failure in name resolution>", "owner": "root", "size": 831267, "state": "file", "uid": 0, "url": "https://drupalconsole.com/installer"}

PLAY RECAP *********************************************************************
www8-php7-3                : ok=138  changed=0    unreachable=0    failed=1    skipped=151  rescued=0    ignored=0

Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

@vouza - It looks like you may be trying to install the drupal-console addon, but it's best to add that to your project directly via composer require instead of using the installed extra.
See the Temporary failure in name resolution error—it seems like your VM isn't able to reach the URL https://drupalconsole.com/installer for whatever reason.

Hi. It has nothing to do with the drupal-console.
Like mentioned in the top:
This output shows the drupal console as issue... when I comment out the drupal console it is the next "installed_extra". The error stays the same: "Ansible failed to complete successfully. Any error output should be visible above. Please fix these errors and try again."
Also ... when installing the machine ... (not provisioning) all is installed correctly.

I just downloaded the latest drupal-vm and ran a "vagrant up" with no issues. Again when trying to run "vagrant provision" I receive this ansible error. Important: I made absolutely NO changes to the config or the files. I must be a general issue with the latest version of ansible and / or the latest version of OSX.
`TASK [geerlingguy.drupal : Install dependencies with composer require (this may take a while).] ***
failed: [drupalvm] (item=drupal/devel:^1.2) => {"ansible_loop_var": "item", "changed": false, "item": "drupal/devel:^1.2", "msg": "1/2: http://repo.packagist.org/p/provider-2020-04$48cbe0a352dc51e6f7505eaa360b354af7d1aed322cd6be4980b2033658e7dab.json 2/2: http://repo.packagist.org/p/provider-latest$019e8fe3cfe02226d13027724d4d66666f968a40022035fd9154d0f7e441a44d.json Finished: success: 2, skipped: 0, failure: 0, total: 2 ./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead. Package zendframework/zend-diactoros is abandoned, you should avoid using it. Use laminas/laminas-diactoros instead. Package zendframework/zend-escaper is abandoned, you should avoid using it. Use laminas/laminas-escaper instead. Package zendframework/zend-feed is abandoned, you should avoid using it. Use laminas/laminas-feed instead. Package zendframework/zend-stdlib is abandoned, you should avoid using it. Use laminas/laminas-stdlib instead. Generating optimized autoload files Installation failed, reverting ./composer.json to its original content. [RuntimeException] Could not delete /var/www/drupalvm/drupal/web/sites/default/default.services.yml: require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--update-with-all-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] []...", "stdout": "    1/2:\thttp://repo.packagist.org/p/provider-2020-04$48cbe0a352dc51e6f7505eaa360b354af7d1aed322cd6be4980b2033658e7dab.json\n    2/2:\thttp://repo.packagist.org/p/provider-latest$019e8fe3cfe02226d13027724d4d66666f968a40022035fd9154d0f7e441a44d.json\n    Finished: success: 2, skipped: 0, failure: 0, total: 2\n./composer.json has been updated\n> DrupalProject\composer\ScriptHandler::checkComposerVersion\nLoading composer repositories with package information\nUpdating dependencies (including require-dev)\nNothing to install or update\nPackage container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.\nPackage zendframework/zend-diactoros is abandoned, you should avoid using it. Use laminas/laminas-diactoros instead.\nPackage zendframework/zend-escaper is abandoned, you should avoid using it. Use laminas/laminas-escaper instead.\nPackage zendframework/zend-feed is abandoned, you should avoid using it. Use laminas/laminas-feed instead.\nPackage zendframework/zend-stdlib is abandoned, you should avoid using it. Use laminas/laminas-stdlib instead.\nGenerating optimized autoload files\n\nInstallation failed, reverting ./composer.json to its original content.\n\n                                                                                \n  [RuntimeException]                                                                 \n  Could not delete /var/www/drupalvm/drupal/web/sites/default/default.services.yml:  \n                                                                                \n\nrequire [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--update-with-all-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] []...\n\n", "stdout_lines": ["    1/2:\thttp://repo.packagist.org/p/provider-2020-04$48cbe0a352dc51e6f7505eaa360b354af7d1aed322cd6be4980b2033658e7dab.json", "    2/2:\thttp://repo.packagist.org/p/provider-latest$019e8fe3cfe02226d13027724d4d66666f968a40022035fd9154d0f7e441a44d.json", "    Finished: success: 2, skipped: 0, failure: 0, total: 2", "./composer.json has been updated", "> DrupalProject\composer\ScriptHandler::checkComposerVersion", "Loading composer repositories with package information", "Updating dependencies (including require-dev)", "Nothing to install or update", "Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.", "Package zendframework/zend-diactoros is abandoned, you should avoid using it. Use laminas/laminas-diactoros instead.", "Package zendframework/zend-escaper is abandoned, you should avoid using it. Use laminas/laminas-escaper instead.", "Package zendframework/zend-feed is abandoned, you should avoid using it. Use laminas/laminas-feed instead.", "Package zendframework/zend-stdlib is abandoned, you should avoid using it. Use laminas/laminas-stdlib instead.", "Generating optimized autoload files", "", "Installation failed, reverting ./composer.json to its original content.", "", "                                                                                ", "  [RuntimeException]                                                                 ", "  Could not delete /var/www/drupalvm/drupal/web/sites/default/default.services.yml:  ", "                                                                                ", "", "require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--update-with-all-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] []...", ""]}
PLAY RECAP *********************************************************************
drupalvm                   : ok=185  changed=0    unreachable=0    failed=1    skipped=348  rescued=0    ignored=1
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
`

I also tried to reinstall Ansible - no success! Error stays the same. I believe somehow that the problem is related to the changes Apple did to the file system.

Ok I updated virtualBox. Ansible does run now without issues. I can provisoin drupal vm.

@vouza - Ah, nice! And yeah, there are a number of issues (most now closed) where people were running into various problems with filesystem permissions and Vagrant and VirtualBox after the Catalina upgrade, looks like that might've been the case for you too :(


Julia 1.0 fails to build

Issue description
trying to install julia 1.0. This is on a 2014 macbook air. I also cannot get julia 0.7 to build either. julia 0.6 seems to work fine though
fails to after running tests:
    Future                          |       33                      33
    InteractiveUtils                |      109                     109
    Libdl                           |       63             1        64
    Logging                         |       36                      36
    FileWatching                    |      509     1               510
    Markdown                        |      232                     232
    Mmap                            |      131                     131
    Printf                          |      739                     739
    Profile                         |       10                      10
    Distributed                     |                         No tests
    REPL                            |      990             5       995
    LibGit2/libgit2                 |      670             1       671
    Sockets                         |                         No tests
    Random                          |   203071                  203071
    Serialization                   |      106                     106
    SHA                             |        1                       1
    UUIDs                           |       10                      10
    Statistics                      |      578                     578
    Unicode                         |      752                     752
    Test                            |      285            14       299
    SuiteSparse                     |      761                     761
    precompile                      |       90                      90
    SharedArrays                    |      110                     110
    stress                          |      119                     119
    FAILURE

The global RNG seed was 0x3a42f898e1b0499dc0f413cf4957cc3b.

Error in testset FileWatching:
Test Failed at /build/source/usr/share/julia/stdlib/v1.0/FileWatching/test/runtests.jl:184
  Expression: 0.001 <= #= /build/source/usr/share/julia/stdlib/v1.0/FileWatching/test/runtests.jl:184 =# @elapsed(#= /build/source/usr/share/julia/stdlib/v1.0/FileWatching/test/runtests.jl:184 =# @test(watch_folder(dir, 0.004) == ("" => FileWatching.FileEvent()))) <= 2
   Evaluated: 0.001 <= 2.539912317 <= 2
ERROR: LoadError: Test run finished with errors
in expression starting at /build/source/test/runtests.jl:61
make[1]: *** [Makefile:22: all] Error 1
make[1]: Leaving directory '/build/source/test'
make: *** [Makefile:602: testall] Error 2
builder for '/nix/store/6qrgnpd2qr6h4arqfl5yc959p6n2cmcw-julia-1.0.3.drv' failed with exit code 2
error: build of '/nix/store/6qrgnpd2qr6h4arqfl5yc959p6n2cmcw-julia-1.0.3.drv' failed

Steps to reproduce
run: nix-env -iA nixos.julia_10 or add julia_10 in configuration.nix
Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.
➜  ~ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 4.14.94, NixOS, 18.09.1974.50f41ea2fcf (Jellyfish)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.1.3`
 - channels(root): `"unstable-19.03pre166987.bc41317e243, nixos-18.09.1974.50f41ea2fcf"`
 - channels(doyougnu): `"nixpkgs-19.03pre164887.4001dd679f3"`
 - nixpkgs: `/home/doyougnu/.nix-defexpr/channels/nixpkgs`

cc @7c6f434c

Can't reproduce the original issue. I'm doing:
nix-build channel:nixos-18.09 -A julia_10

It downloads julia 1.0.3 from the binary cache just fine for me

Apparently we need to have libopenblas64_.so as the library name somewhere if we want to be able to run the shipped binary libarpack.so from that package

I'm confused here. Running nix-build channel:nixos-18.09 -A julia_10 works as expected and downloads the binary as stated. But installing the typical way builds the project from source. Is building from source instead of downloading the binary from the binary cache expected behavior?

Hmmm. Is you non-root channel a one-month-old master checkout?

Tried to fix by adding arpack to my FHS but no luck: https://gist.github.com/tbenst/8ad52ef739f7785380374582ab83f715. After a couple days of trying to get standard Julia packages working, I'm starting to think that Julia is allergic to NixOS :(

@tbenst Try adding following to your list of packages:
gfortran.cc
#openblasCompat
(pkgs.runCommand "openblas64_" {} ''
  mkdir -p "$out"/lib/
  ln -s ${openblasCompat}/lib/libopenblas.so "$out"/lib/libopenblas64_.so.0
'')

@veprbl Wow! Thanks! That fixed the issue :1st_place_medal:

Seems to be still relevant.

See also: discussion in #91930.

Closing this issue. It is subsumed by #91930


feat(rpc-types-trace): always serialize result if no error

Motivation

I'm checking with reth's trace results with erigon's, seems erigon will always return result:null if no error occurred:

And found the OG OpenEthereum's serialized logic as below:
https://github.com/openethereum/openethereum/blob/main/crates/rpc/src/v1/types/trace.rs#L532
  match self.result {
        Res::Call(ref call) => struc.serialize_field("result", call)?,
        Res::Create(ref create) => struc.serialize_field("result", create)?,
        Res::FailedCall(ref error) => struc.serialize_field("error", &error.to_string())?,
        Res::FailedCreate(ref error) => struc.serialize_field("error", &error.to_string())?,
        Res::None => struc.serialize_field("result", &None as &Option<u8>)?,
    }

Solution

PR Checklist

[ ] Added Tests
[ ] Added Documentation
[ ] Breaking changes

is this causing issues?

Not really, I'm comparing the trace results between reth and erigon, and then found this issue(see the diff image)

do you know when this can be null?

suicide's results were null
after thinking twice, I think we can keep the same format as erigon's, result always present, error omitted if none https://github.com/erigontech/erigon/blob/13b4b7768485736e54ff5ca3270ebeec5c023ba8/turbo/jsonrpc/trace_types.go#L62-L63
type ParityTrace struct {
...
	Error               string       `json:"error,omitempty"`
	Result              interface{}  `json:"result"`
...
}

@mattsse WDYT

I see, then this makes sense