[BUG][OpenSearch Dashboard]-CrashLoopBackOff Error

CrashLoopBackOff Error
I am deploying an OpenSearch cluster on my local machine, after successfully installing the pods with the helm command
I checked the status of my pods with kubectl get pods command but it returns a "CrashLoopBackOff" error
I found a solution on StackOverflow that requires increasing the initialDelaySeconds to 300s but that doesn't seem to work
To Reproduce
Steps to reproduce the behavior:

Go to kubectl get pods
View the pods status of  opensearch-cluster-client-0, opensearch-cluster-data-0, opensearch-cluster-master-0

Expected behavior
The output shows READY 1/1 and status Running once the deployment succeeds.
Screenshots

Host/Environment (please complete the following information):

Helm Version: "v3.9.1"
Kubernetes Client Version: "v3.9.1"
Kubernetes Server Version: "v1.24.1
Local Machine:
OS Name:	Microsoft Windows 10 Home
Version:	10.0.19044 Build 19044
System Model:	HP ENVY x360 Convertible
Processor:	Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz, 2592 Mhz, 2 Core(s), 4 Logical Processor(s)
BIOS Version/Date:	Insyde F.1A, 7/25/2016

@daniel-dodoo Can you share the values.yaml file you are using, also share the helm chart version you are using for spinning up the multi-cluster nodes. Thanks

@TheAlgo  Sure sure
helm version: Version:"v3.9.1"
master.yaml
clusterName: "opensearch-cluster"
nodeGroup: "master"
The service that non master groups will try to connect to when joining the cluster
This should be set to clusterName + "-" + nodeGroup for your master group
masterService: "opensearch-cluster-master"
OpenSearch roles that will be applied to this nodeGroup
These will be set as environment variable "node.roles". E.g. node.roles=master,ingest,data,remote_cluster_client
roles:

master: "true"
ingest: "false"
data: "false"
remote_cluster_client: "false"

replicas: 1
if not set, falls back to parsing .Values.imageTag, then .Chart.appVersion.
majorVersion: ""
global:
Set if you want to change the default docker registry, e.g. a private one.
dockerRegistry: ""
Allows you to add any config files in {{ .Values.opensearchHome }}/config
opensearchHome: /usr/share/opensearch
such as opensearch.yml and log4j2.properties
config:
Values must be YAML literal style scalar / YAML multiline string.
: |
<formatted-value(s)>
log4j2.properties: |
status = error

appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %m%n

rootLogger.level = info
rootLogger.appenderRef.console.ref = console
opensearch.yml: |
cluster.name: opensearch-cluster
# Bind to all interfaces because we don't know what IP address Docker will assign to us.
network.host: <IP_ADDRESS>

# Setting network.host to a non-loopback address enables the annoying bootstrap checks. "Single-node" mode disables them again.
# discovery.type: single-node

# Start OpenSearch Security Demo Configuration
# WARNING: revise all the lines below before you go into production
plugins:
  security:
    ssl:
      transport:
        pemcert_filepath: esnode.pem
        pemkey_filepath: esnode-key.pem
        pemtrustedcas_filepath: root-ca.pem
        enforce_hostname_verification: false
      http:
        enabled: true
        pemcert_filepath: esnode.pem
        pemkey_filepath: esnode-key.pem
        pemtrustedcas_filepath: root-ca.pem
    allow_unsafe_democertificates: true
    allow_default_init_securityindex: true
    authcz:
      admin_dn:
        - CN=kirk,OU=client,O=client,L=test,C=de
    audit.type: internal_opensearch
    enable_snapshot_restore_privilege: true
    check_snapshot_restore_write_privileges: true
    restapi:
      roles_enabled: ["all_access", "security_rest_api_access"]
    system_indices:
      enabled: true
      indices:
        [
          ".opendistro-alerting-config",
          ".opendistro-alerting-alert*",
          ".opendistro-anomaly-results*",
          ".opendistro-anomaly-detector*",
          ".opendistro-anomaly-checkpoints",
          ".opendistro-anomaly-detection-state",
          ".opendistro-reports-*",
          ".opendistro-notifications-*",
          ".opendistro-notebooks",
          ".opendistro-asynchronous-search-response*",
        ]
######## End OpenSearch Security Demo Configuration ########

log4j2.properties:
Extra environment variables to append to this nodeGroup
This will be appended to the current 'env:' key. You can use any of the kubernetes env
syntax here
extraEnvs: []
- name: MY_ENVIRONMENT_VAR
value: the_value_goes_here
Allows you to load environment variables from kubernetes secret or config map
envFrom: []
- secretRef:
name: env-secret
- configMapRef:
name: config-map
A list of secrets and their paths to mount inside the pod
This is useful for mounting certificates for security and for mounting
the X-Pack license
secretMounts: []
hostAliases: []
- ip: "<IP_ADDRESS>"
hostnames:
- "foo.local"
- "bar.local"
image:
repository: "opensearchproject/opensearch"
override image tag, which is .Chart.AppVersion by default
tag: ""
pullPolicy: "IfNotPresent"
podAnnotations: {}
iam.amazonaws.com/role: es-cluster
additionals labels
labels: {}
opensearchJavaOpts: "-Xmx512M -Xms512M"
resources:
requests:
cpu: "1000m"
memory: "100Mi"
initResources: {}
limits:
cpu: "25m"
memory: "128Mi"
requests:
cpu: "25m"
memory: "128Mi"
sidecarResources: {}
limits:
cpu: "25m"
memory: "128Mi"
requests:
cpu: "25m"
memory: "128Mi"
networkHost: "<IP_ADDRESS>"
rbac:
create: false
serviceAccountAnnotations: {}
serviceAccountName: ""
podSecurityPolicy:
create: false
name: ""
spec:
privileged: true
fsGroup:
rule: RunAsAny
runAsUser:
rule: RunAsAny
seLinux:
rule: RunAsAny
supplementalGroups:
rule: RunAsAny
volumes:
- secret
- configMap
- persistentVolumeClaim
- emptyDir
persistence:
enabled: true
Set to false to disable the fsgroup-volume initContainer that will update permissions on the persistent disk.
enableInitChown: true
override image, which is busybox by default
image: busybox
override image tag, which is latest by default
imageTag:
labels:
# Add default labels for the volumeClaimTemplate of the StatefulSet
enabled: false
OpenSearch Persistent Volume Storage Class
If defined, storageClassName:
If set to "-", storageClassName: "", which disables dynamic provisioning
If undefined (the default) or set to null, no storageClassName spec is
set, choosing the default provisioner.  (gp2 on AWS, standard on
GKE, AWS & OpenStack)

storageClass: "-"
accessModes:
- ReadWriteOnce
size: 8Gi
annotations: {}
extraVolumes: []
- name: extras
emptyDir: {}
extraVolumeMounts: []
- name: extras
mountPath: /usr/share/extras
readOnly: true
extraContainers: []
- name: do-something
image: busybox
command: ['do', 'something']
extraInitContainers: []
- name: do-somethings
image: busybox
command: ['do', 'something']
This is the PriorityClass settings as defined in
https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
priorityClassName: ""
By default this will make sure two pods don't end up on the same node
Changing this to a region would allow you to spread pods across regions
antiAffinityTopologyKey: "kubernetes.io/hostname"
Hard means that by default pods will only be scheduled if there are enough nodes for them
and that they will never end up on the same node. Setting this to soft will do this "best effort"
antiAffinity: "soft"
This is the node affinity settings as defined in
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity-beta-feature
nodeAffinity: {}
This is the pod topology spread constraints
https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
topologySpreadConstraints: []
The default is to deploy all pods serially. By setting this to parallel all pods are started at
the same time when bootstrapping the cluster
podManagementPolicy: "Parallel"
The environment variables injected by service links are not used, but can lead to slow OpenSearch boot times when
there are many services in the current namespace.
If you experience slow pod startups you probably want to set this to false.
enableServiceLinks: true
protocol: https
httpPort: 9200
transportPort: 9300
service:
labels: {}
labelsHeadless: {}
headless:
annotations: {}
type: ClusterIP
nodePort: ""
annotations: {}
httpPortName: http
transportPortName: transport
loadBalancerIP: ""
loadBalancerSourceRanges: []
externalTrafficPolicy: ""
updateStrategy: RollingUpdate
This is the max unavailable setting for the pod disruption budget
The default value of 1 will make sure that kubernetes won't allow more than 1
of your pods to be unavailable during maintenance
maxUnavailable: 1
podSecurityContext:
fsGroup: 1000
runAsUser: 1000
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
securityConfig:
enabled: true
path: "/usr/share/opensearch/plugins/opensearch-security/securityconfig"
actionGroupsSecret:
configSecret:
internalUsersSecret:
rolesSecret:
rolesMappingSecret:
tenantsSecret:
The following option simplifies securityConfig by using a single secret and
specifying the config files as keys in the secret instead of creating
different secrets for for each config file.
Note that this is an alternative to the individual secret configuration
above and shouldn't be used if the above secrets are used.
config:
# There are multiple ways to define the configuration here:
# * If you define anything under data, the chart will automatically create
#   a secret and mount it.
# * If you define securityConfigSecret, the chart will assume this secret is
#   created externally and mount it.
# * It is an error to define both data and securityConfigSecret.
securityConfigSecret: ""
dataComplete: true
data: {}
# config.yml: |-
# internal_users.yml: |-
# roles.yml: |-
# roles_mapping.yml: |-
# action_groups.yml: |-
# tenants.yml: |-
How long to wait for opensearch to stop gracefully
terminationGracePeriod: 120
sysctlVmMaxMapCount: 262144
startupProbe:
tcpSocket:
port: 9200
initialDelaySeconds: 300
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 30
readinessProbe:
tcpSocket:
port: 9200
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3
Use an alternate scheduler.
ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/

schedulerName: ""
imagePullSecrets: []
nodeSelector: {}
tolerations: []
Enabling this will publically expose your OpenSearch instance.
Only enable this if you have security enabled on your cluster
ingress:
enabled: false
For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
ingressClassName: nginx
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
path: /
hosts:
- chart-example.local
tls: []
- secretName: chart-example-tls
hosts:
- chart-example.local
nameOverride: ""
fullnameOverride: ""
masterTerminationFix: false
lifecycle: {}
preStop:
exec:
command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
postStart:
exec:
command:
- bash
- -c
- |
#!/bin/bash
# Add a template to adjust number of shards/replicas1
TEMPLATE_NAME=my_template
INDEX_PATTERN="logstash-*"
SHARD_COUNT=8
REPLICA_COUNT=1
ES_URL=http://localhost:9200
while [[ "$(curl -s -o /dev/null -w '%{http_code}\n' $ES_URL)" != "200" ]]; do sleep 1; done
curl -XPUT "$ES_URL/_template/$TEMPLATE_NAME" -H 'Content-Type: application/json' -d'{"index_patterns":['""$INDEX_PATTERN""'],"settings":{"number_of_shards":'$SHARD_COUNT',"number_of_replicas":'$REPLICA_COUNT'}}'
keystore: []
To add secrets to the keystore:
- secretName: opensearch-encryption-key
networkPolicy:
create: false
Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now.
In order for a Pod to access OpenSearch, it needs to have the following label:
{{ template "uname" . }}-client: "true"
Example for default configuration to access HTTP port:
opensearch-master-http-client: "true"
Example for default configuration to access transport port:
opensearch-master-transport-client: "true"
http:
enabled: false
Deprecated
please use the above podSecurityContext.fsGroup instead
fsGroup: ""
Set optimal sysctl's. This requires privilege. Can be disabled if
the system has already been preconfigured. (Ex: https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html)
Also see: https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/
sysctl:
enabled: false
Enable to add 3rd Party / Custom plugins not offered in the default OpenSearch image.
plugins:
enabled: false
installList: []
- example-fake-plugin
-- Array of extra K8s manifests to deploy
extraObjects: []
- apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: argocd-secrets-store
spec:
provider: aws
parameters:
objects: |
- objectName: "argocd"
objectType: "secretsmanager"
jmesPath:
- path: "client_id"
objectAlias: "client_id"
- path: "client_secret"
objectAlias: "client_secret"
secretObjects:
- data:
- key: client_id
objectName: client_id
- key: client_secret
objectName: client_secret
secretName: argocd-secrets-store
type: Opaque
labels:
app.kubernetes.io/part-of: argocd
data.yaml
clusterName: "opensearch-cluster"
nodeGroup: "data"
The service that non master groups will try to connect to when joining the cluster
This should be set to clusterName + "-" + nodeGroup for your master group
masterService: "opensearch-cluster-master"
OpenSearch roles that will be applied to this nodeGroup
These will be set as environment variable "node.roles". E.g. node.roles=master,ingest,data,remote_cluster_client
roles:

master: "false"
ingest: "true"
data: "true"
remote_cluster_client: "false"

replicas: 1
if not set, falls back to parsing .Values.imageTag, then .Chart.appVersion.
majorVersion: ""
global:
Set if you want to change the default docker registry, e.g. a private one.
dockerRegistry: ""
Allows you to add any config files in {{ .Values.opensearchHome }}/config
opensearchHome: /usr/share/opensearch
such as opensearch.yml and log4j2.properties
config:
Values must be YAML literal style scalar / YAML multiline string.
: |
<formatted-value(s)>
log4j2.properties: |
status = error

appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %m%n

rootLogger.level = info
rootLogger.appenderRef.console.ref = console
opensearch.yml: |
cluster.name: opensearch-cluster
# Bind to all interfaces because we don't know what IP address Docker will assign to us.
network.host: <IP_ADDRESS>

# Setting network.host to a non-loopback address enables the annoying bootstrap checks. "Single-node" mode disables them again.
# discovery.type: single-node

# Start OpenSearch Security Demo Configuration
# WARNING: revise all the lines below before you go into production
plugins:
  security:
    ssl:
      transport:
        pemcert_filepath: esnode.pem
        pemkey_filepath: esnode-key.pem
        pemtrustedcas_filepath: root-ca.pem
        enforce_hostname_verification: false
      http:
        enabled: true
        pemcert_filepath: esnode.pem
        pemkey_filepath: esnode-key.pem
        pemtrustedcas_filepath: root-ca.pem
    allow_unsafe_democertificates: true
    allow_default_init_securityindex: true
    authcz:
      admin_dn:
        - CN=kirk,OU=client,O=client,L=test,C=de
    audit.type: internal_opensearch
    enable_snapshot_restore_privilege: true
    check_snapshot_restore_write_privileges: true
    restapi:
      roles_enabled: ["all_access", "security_rest_api_access"]
    system_indices:
      enabled: true
      indices:
        [
          ".opendistro-alerting-config",
          ".opendistro-alerting-alert*",
          ".opendistro-anomaly-results*",
          ".opendistro-anomaly-detector*",
          ".opendistro-anomaly-checkpoints",
          ".opendistro-anomaly-detection-state",
          ".opendistro-reports-*",
          ".opendistro-notifications-*",
          ".opendistro-notebooks",
          ".opendistro-asynchronous-search-response*",
        ]
######## End OpenSearch Security Demo Configuration ########

log4j2.properties:
Extra environment variables to append to this nodeGroup
This will be appended to the current 'env:' key. You can use any of the kubernetes env
syntax here
extraEnvs: []
- name: MY_ENVIRONMENT_VAR
value: the_value_goes_here
Allows you to load environment variables from kubernetes secret or config map
envFrom: []
- secretRef:
name: env-secret
- configMapRef:
name: config-map
A list of secrets and their paths to mount inside the pod
This is useful for mounting certificates for security and for mounting
the X-Pack license
secretMounts: []
hostAliases: []
- ip: "<IP_ADDRESS>"
hostnames:
- "foo.local"
- "bar.local"
image:
repository: "opensearchproject/opensearch"
override image tag, which is .Chart.AppVersion by default
tag: ""
pullPolicy: "IfNotPresent"
podAnnotations: {}
iam.amazonaws.com/role: es-cluster
additionals labels
labels: {}
opensearchJavaOpts: "-Xmx512M -Xms512M"
resources:
requests:
cpu: "1000m"
memory: "100Mi"
initResources: {}
limits:
cpu: "25m"
memory: "128Mi"
requests:
cpu: "25m"
memory: "128Mi"
sidecarResources: {}
limits:
cpu: "25m"
memory: "128Mi"
requests:
cpu: "25m"
memory: "128Mi"
networkHost: "<IP_ADDRESS>"
rbac:
create: false
serviceAccountAnnotations: {}
serviceAccountName: ""
podSecurityPolicy:
create: false
name: ""
spec:
privileged: true
fsGroup:
rule: RunAsAny
runAsUser:
rule: RunAsAny
seLinux:
rule: RunAsAny
supplementalGroups:
rule: RunAsAny
volumes:
- secret
- configMap
- persistentVolumeClaim
- emptyDir
persistence:
enabled: true
Set to false to disable the fsgroup-volume initContainer that will update permissions on the persistent disk.
enableInitChown: true
override image, which is busybox by default
image: busybox
override image tag, which is latest by default
imageTag:
labels:
# Add default labels for the volumeClaimTemplate of the StatefulSet
enabled: false
OpenSearch Persistent Volume Storage Class
If defined, storageClassName:
If set to "-", storageClassName: "", which disables dynamic provisioning
If undefined (the default) or set to null, no storageClassName spec is
set, choosing the default provisioner.  (gp2 on AWS, standard on
GKE, AWS & OpenStack)

storageClass: "-"
accessModes:
- ReadWriteOnce
size: 8Gi
annotations: {}
extraVolumes: []
- name: extras
emptyDir: {}
extraVolumeMounts: []
- name: extras
mountPath: /usr/share/extras
readOnly: true
extraContainers: []
- name: do-something
image: busybox
command: ['do', 'something']
extraInitContainers: []
- name: do-somethings
image: busybox
command: ['do', 'something']
This is the PriorityClass settings as defined in
https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
priorityClassName: ""
By default this will make sure two pods don't end up on the same node
Changing this to a region would allow you to spread pods across regions
antiAffinityTopologyKey: "kubernetes.io/hostname"
Hard means that by default pods will only be scheduled if there are enough nodes for them
and that they will never end up on the same node. Setting this to soft will do this "best effort"
antiAffinity: "soft"
This is the node affinity settings as defined in
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity-beta-feature
nodeAffinity: {}
This is the pod topology spread constraints
https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
topologySpreadConstraints: []
The default is to deploy all pods serially. By setting this to parallel all pods are started at
the same time when bootstrapping the cluster
podManagementPolicy: "Parallel"
The environment variables injected by service links are not used, but can lead to slow OpenSearch boot times when
there are many services in the current namespace.
If you experience slow pod startups you probably want to set this to false.
enableServiceLinks: true
protocol: https
httpPort: 9200
transportPort: 9300
service:
labels: {}
labelsHeadless: {}
headless:
annotations: {}
type: ClusterIP
nodePort: ""
annotations: {}
httpPortName: http
transportPortName: transport
loadBalancerIP: ""
loadBalancerSourceRanges: []
externalTrafficPolicy: ""
updateStrategy: RollingUpdate
This is the max unavailable setting for the pod disruption budget
The default value of 1 will make sure that kubernetes won't allow more than 1
of your pods to be unavailable during maintenance
maxUnavailable: 1
podSecurityContext:
fsGroup: 1000
runAsUser: 1000
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
securityConfig:
enabled: true
path: "/usr/share/opensearch/plugins/opensearch-security/securityconfig"
actionGroupsSecret:
configSecret:
internalUsersSecret:
rolesSecret:
rolesMappingSecret:
tenantsSecret:
The following option simplifies securityConfig by using a single secret and
specifying the config files as keys in the secret instead of creating
different secrets for for each config file.
Note that this is an alternative to the individual secret configuration
above and shouldn't be used if the above secrets are used.
config:
# There are multiple ways to define the configuration here:
# * If you define anything under data, the chart will automatically create
#   a secret and mount it.
# * If you define securityConfigSecret, the chart will assume this secret is
#   created externally and mount it.
# * It is an error to define both data and securityConfigSecret.
securityConfigSecret: ""
dataComplete: true
data: {}
# config.yml: |-
# internal_users.yml: |-
# roles.yml: |-
# roles_mapping.yml: |-
# action_groups.yml: |-
# tenants.yml: |-
How long to wait for opensearch to stop gracefully
terminationGracePeriod: 120
sysctlVmMaxMapCount: 262144
startupProbe:
tcpSocket:
port: 9200
initialDelaySeconds: 300
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 30
readinessProbe:
tcpSocket:
port: 9200
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3
Use an alternate scheduler.
ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/

schedulerName: ""
imagePullSecrets: []
nodeSelector: {}
tolerations: []
Enabling this will publically expose your OpenSearch instance.
Only enable this if you have security enabled on your cluster
ingress:
enabled: false
For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
ingressClassName: nginx
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
path: /
hosts:
- chart-example.local
tls: []
- secretName: chart-example-tls
hosts:
- chart-example.local
nameOverride: ""
fullnameOverride: ""
masterTerminationFix: false
lifecycle: {}
preStop:
exec:
command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
postStart:
exec:
command:
- bash
- -c
- |
#!/bin/bash
# Add a template to adjust number of shards/replicas1
TEMPLATE_NAME=my_template
INDEX_PATTERN="logstash-*"
SHARD_COUNT=8
REPLICA_COUNT=1
ES_URL=http://localhost:9200
while [[ "$(curl -s -o /dev/null -w '%{http_code}\n' $ES_URL)" != "200" ]]; do sleep 1; done
curl -XPUT "$ES_URL/_template/$TEMPLATE_NAME" -H 'Content-Type: application/json' -d'{"index_patterns":['""$INDEX_PATTERN""'],"settings":{"number_of_shards":'$SHARD_COUNT',"number_of_replicas":'$REPLICA_COUNT'}}'
keystore: []
To add secrets to the keystore:
- secretName: opensearch-encryption-key
networkPolicy:
create: false
Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now.
In order for a Pod to access OpenSearch, it needs to have the following label:
{{ template "uname" . }}-client: "true"
Example for default configuration to access HTTP port:
opensearch-master-http-client: "true"
Example for default configuration to access transport port:
opensearch-master-transport-client: "true"
http:
enabled: false
Deprecated
please use the above podSecurityContext.fsGroup instead
fsGroup: ""
Set optimal sysctl's. This requires privilege. Can be disabled if
the system has already been preconfigured. (Ex: https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html)
Also see: https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/
sysctl:
enabled: false
Enable to add 3rd Party / Custom plugins not offered in the default OpenSearch image.
plugins:
enabled: false
installList: []
- example-fake-plugin
-- Array of extra K8s manifests to deploy
extraObjects: []
- apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: argocd-secrets-store
spec:
provider: aws
parameters:
objects: |
- objectName: "argocd"
objectType: "secretsmanager"
jmesPath:
- path: "client_id"
objectAlias: "client_id"
- path: "client_secret"
objectAlias: "client_secret"
secretObjects:
- data:
- key: client_id
objectName: client_id
- key: client_secret
objectName: client_secret
secretName: argocd-secrets-store
type: Opaque
labels:
app.kubernetes.io/part-of: argocd
client.yaml
clusterName: "opensearch-cluster"
nodeGroup: "client"
The service that non master groups will try to connect to when joining the cluster
This should be set to clusterName + "-" + nodeGroup for your master group
masterService: "opensearch-cluster-master"
OpenSearch roles that will be applied to this nodeGroup
These will be set as environment variable "node.roles". E.g. node.roles=master,ingest,data,remote_cluster_client
roles:

master: "false"
ingest: "false"
data: "false"
remote_cluster_client: "false"

replicas: 1
if not set, falls back to parsing .Values.imageTag, then .Chart.appVersion.
majorVersion: ""
global:
Set if you want to change the default docker registry, e.g. a private one.
dockerRegistry: ""
Allows you to add any config files in {{ .Values.opensearchHome }}/config
opensearchHome: /usr/share/opensearch
such as opensearch.yml and log4j2.properties
config:
Values must be YAML literal style scalar / YAML multiline string.
: |
<formatted-value(s)>
log4j2.properties: |
status = error

appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %m%n

rootLogger.level = info
rootLogger.appenderRef.console.ref = console
opensearch.yml: |
cluster.name: opensearch-cluster
# Bind to all interfaces because we don't know what IP address Docker will assign to us.
network.host: <IP_ADDRESS>

# Setting network.host to a non-loopback address enables the annoying bootstrap checks. "Single-node" mode disables them again.
# discovery.type: single-node

# Start OpenSearch Security Demo Configuration
# WARNING: revise all the lines below before you go into production
plugins:
  security:
    ssl:
      transport:
        pemcert_filepath: esnode.pem
        pemkey_filepath: esnode-key.pem
        pemtrustedcas_filepath: root-ca.pem
        enforce_hostname_verification: false
      http:
        enabled: true
        pemcert_filepath: esnode.pem
        pemkey_filepath: esnode-key.pem
        pemtrustedcas_filepath: root-ca.pem
    allow_unsafe_democertificates: true
    allow_default_init_securityindex: true
    authcz:
      admin_dn:
        - CN=kirk,OU=client,O=client,L=test,C=de
    audit.type: internal_opensearch
    enable_snapshot_restore_privilege: true
    check_snapshot_restore_write_privileges: true
    restapi:
      roles_enabled: ["all_access", "security_rest_api_access"]
    system_indices:
      enabled: true
      indices:
        [
          ".opendistro-alerting-config",
          ".opendistro-alerting-alert*",
          ".opendistro-anomaly-results*",
          ".opendistro-anomaly-detector*",
          ".opendistro-anomaly-checkpoints",
          ".opendistro-anomaly-detection-state",
          ".opendistro-reports-*",
          ".opendistro-notifications-*",
          ".opendistro-notebooks",
          ".opendistro-asynchronous-search-response*",
        ]
######## End OpenSearch Security Demo Configuration ########

log4j2.properties:
Extra environment variables to append to this nodeGroup
This will be appended to the current 'env:' key. You can use any of the kubernetes env
syntax here
extraEnvs: []
- name: MY_ENVIRONMENT_VAR
value: the_value_goes_here
Allows you to load environment variables from kubernetes secret or config map
envFrom: []
- secretRef:
name: env-secret
- configMapRef:
name: config-map
A list of secrets and their paths to mount inside the pod
This is useful for mounting certificates for security and for mounting
the X-Pack license
secretMounts: []
hostAliases: []
- ip: "<IP_ADDRESS>"
hostnames:
- "foo.local"
- "bar.local"
image:
repository: "opensearchproject/opensearch"
override image tag, which is .Chart.AppVersion by default
tag: ""
pullPolicy: "IfNotPresent"
podAnnotations: {}
iam.amazonaws.com/role: es-cluster
additionals labels
labels: {}
opensearchJavaOpts: "-Xmx512M -Xms512M"
resources:
requests:
cpu: "1000m"
memory: "100Mi"
initResources: {}
limits:
cpu: "25m"
memory: "128Mi"
requests:
cpu: "25m"
memory: "128Mi"
sidecarResources: {}
limits:
cpu: "25m"
memory: "128Mi"
requests:
cpu: "25m"
memory: "128Mi"
networkHost: "<IP_ADDRESS>"
rbac:
create: false
serviceAccountAnnotations: {}
serviceAccountName: ""
podSecurityPolicy:
create: false
name: ""
spec:
privileged: true
fsGroup:
rule: RunAsAny
runAsUser:
rule: RunAsAny
seLinux:
rule: RunAsAny
supplementalGroups:
rule: RunAsAny
volumes:
- secret
- configMap
- persistentVolumeClaim
- emptyDir
persistence:
enabled: true
Set to false to disable the fsgroup-volume initContainer that will update permissions on the persistent disk.
enableInitChown: true
override image, which is busybox by default
image: busybox
override image tag, which is latest by default
imageTag:
labels:
# Add default labels for the volumeClaimTemplate of the StatefulSet
enabled: false
OpenSearch Persistent Volume Storage Class
If defined, storageClassName:
If set to "-", storageClassName: "", which disables dynamic provisioning
If undefined (the default) or set to null, no storageClassName spec is
set, choosing the default provisioner.  (gp2 on AWS, standard on
GKE, AWS & OpenStack)

storageClass: "-"
accessModes:
- ReadWriteOnce
size: 8Gi
annotations: {}
extraVolumes: []
- name: extras
emptyDir: {}
extraVolumeMounts: []
- name: extras
mountPath: /usr/share/extras
readOnly: true
extraContainers: []
- name: do-something
image: busybox
command: ['do', 'something']
extraInitContainers: []
- name: do-somethings
image: busybox
command: ['do', 'something']
This is the PriorityClass settings as defined in
https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
priorityClassName: ""
By default this will make sure two pods don't end up on the same node
Changing this to a region would allow you to spread pods across regions
antiAffinityTopologyKey: "kubernetes.io/hostname"
Hard means that by default pods will only be scheduled if there are enough nodes for them
and that they will never end up on the same node. Setting this to soft will do this "best effort"
antiAffinity: "soft"
This is the node affinity settings as defined in
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity-beta-feature
nodeAffinity: {}
This is the pod topology spread constraints
https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
topologySpreadConstraints: []
The default is to deploy all pods serially. By setting this to parallel all pods are started at
the same time when bootstrapping the cluster
podManagementPolicy: "Parallel"
The environment variables injected by service links are not used, but can lead to slow OpenSearch boot times when
there are many services in the current namespace.
If you experience slow pod startups you probably want to set this to false.
enableServiceLinks: true
protocol: https
httpPort: 9200
transportPort: 9300
service:
labels: {}
labelsHeadless: {}
headless:
annotations: {}
type: ClusterIP
nodePort: ""
annotations: {}
httpPortName: http
transportPortName: transport
loadBalancerIP: ""
loadBalancerSourceRanges: []
externalTrafficPolicy: ""
updateStrategy: RollingUpdate
This is the max unavailable setting for the pod disruption budget
The default value of 1 will make sure that kubernetes won't allow more than 1
of your pods to be unavailable during maintenance
maxUnavailable: 1
podSecurityContext:
fsGroup: 1000
runAsUser: 1000
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
securityConfig:
enabled: true
path: "/usr/share/opensearch/plugins/opensearch-security/securityconfig"
actionGroupsSecret:
configSecret:
internalUsersSecret:
rolesSecret:
rolesMappingSecret:
tenantsSecret:
The following option simplifies securityConfig by using a single secret and
specifying the config files as keys in the secret instead of creating
different secrets for for each config file.
Note that this is an alternative to the individual secret configuration
above and shouldn't be used if the above secrets are used.
config:
# There are multiple ways to define the configuration here:
# * If you define anything under data, the chart will automatically create
#   a secret and mount it.
# * If you define securityConfigSecret, the chart will assume this secret is
#   created externally and mount it.
# * It is an error to define both data and securityConfigSecret.
securityConfigSecret: ""
dataComplete: true
data: {}
# config.yml: |-
# internal_users.yml: |-
# roles.yml: |-
# roles_mapping.yml: |-
# action_groups.yml: |-
# tenants.yml: |-
How long to wait for opensearch to stop gracefully
terminationGracePeriod: 120
sysctlVmMaxMapCount: 262144
startupProbe:
tcpSocket:
port: 9200
initialDelaySeconds: 300
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 30
readinessProbe:
tcpSocket:
port: 9200
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3
Use an alternate scheduler.
ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/

schedulerName: ""
imagePullSecrets: []
nodeSelector: {}
tolerations: []
Enabling this will publically expose your OpenSearch instance.
Only enable this if you have security enabled on your cluster
ingress:
enabled: false
For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
ingressClassName: nginx
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
path: /
hosts:
- chart-example.local
tls: []
- secretName: chart-example-tls
hosts:
- chart-example.local
nameOverride: ""
fullnameOverride: ""
masterTerminationFix: false
lifecycle: {}
preStop:
exec:
command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
postStart:
exec:
command:
- bash
- -c
- |
#!/bin/bash
# Add a template to adjust number of shards/replicas1
TEMPLATE_NAME=my_template
INDEX_PATTERN="logstash-*"
SHARD_COUNT=8
REPLICA_COUNT=1
ES_URL=http://localhost:9200
while [[ "$(curl -s -o /dev/null -w '%{http_code}\n' $ES_URL)" != "200" ]]; do sleep 1; done
curl -XPUT "$ES_URL/_template/$TEMPLATE_NAME" -H 'Content-Type: application/json' -d'{"index_patterns":['""$INDEX_PATTERN""'],"settings":{"number_of_shards":'$SHARD_COUNT',"number_of_replicas":'$REPLICA_COUNT'}}'
keystore: []
To add secrets to the keystore:
- secretName: opensearch-encryption-key
networkPolicy:
create: false
Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now.
In order for a Pod to access OpenSearch, it needs to have the following label:
{{ template "uname" . }}-client: "true"
Example for default configuration to access HTTP port:
opensearch-master-http-client: "true"
Example for default configuration to access transport port:
opensearch-master-transport-client: "true"
http:
enabled: false
Deprecated
please use the above podSecurityContext.fsGroup instead
fsGroup: ""
Set optimal sysctl's. This requires privilege. Can be disabled if
the system has already been preconfigured. (Ex: https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html)
Also see: https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/
sysctl:
enabled: false
Enable to add 3rd Party / Custom plugins not offered in the default OpenSearch image.
plugins:
enabled: false
installList: []
- example-fake-plugin
-- Array of extra K8s manifests to deploy
extraObjects: []
- apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: argocd-secrets-store
spec:
provider: aws
parameters:
objects: |
- objectName: "argocd"
objectType: "secretsmanager"
jmesPath:
- path: "client_id"
objectAlias: "client_id"
- path: "client_secret"
objectAlias: "client_secret"
secretObjects:
- data:
- key: client_id
objectName: client_id
- key: client_secret
objectName: client_secret
secretName: argocd-secrets-store
type: Opaque
labels:
app.kubernetes.io/part-of: argocd

@daniel-dodoo I meant the chart version and not the helm version so that I can try reproducing the issue. Also you can check the logs of the pods using the command kubectl logs command, this will help us why the container is crashing as I can see the container was started and it crashed post that.

@TheAlgo ,
Sorry for the delayed response
Helm Chart Version: 2.3.0

Kindly find the logs the pods attached:
opensearch-cluster-client-0 logs.txt
opensearch-cluster-master-0 logs.txt
opensearch-cluster-data-0 logs.txt

Looks like this is the error
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: OpenSearch did not exit normally - check the logs at /usr/share/opensearch/logs/opensearch-cluster.log

Also looks like you are following the blog and it is using chart versions for OpenSearch is 1.2.4 and 1.0.6 for OpenSearch Dashboards.
Can you add the following in all YAML(s) and retry?
sysctl:
  enabled: true

Hello @TheAlgo
How do I view the Helm chart version for OpenSearch Dashboard?
I followed your instructions and made changes to the yaml files for master, data and client
I have the following error now: forbidden sysctl: "vm.max_map_count" not allowlisted

[

You can follow this issue to fix it.

Hello @TheAlgo ,
Many thanks
The pods are now in the running state, I have 2 errors which I have tried to debug to no avail

OpenSearch Security not Initialised when I run "curl -XGET https://localhost:9200 -u 'admin:admin' --insecure" command

Startup probe failed: dial tcp <IP_ADDRESS>:9200: connect: connection refused when I describe master, data and client pods

@daniel-dodoo Can you share the pod logs so that we can see what is the issue you are getting.
P:S :
Alternatively just wanted to share if you are not aware of  : if you don't want a dedicated master, data, client structure you can follow the simpler way of installation here as well.

@TheAlgo
Kindly find the logs for master, data and client attached
Many thanks, I will definitely review the simpler documentation but I will first like to troubleshoot my errors in the current deployment
master.log
data.log
data.log

Seeing this error log some permission issues in the cluster which needs to be fixed it seems You can use official documentation as well to fix security plugin issues in the cluster:
[2022-08-01T23:19:49,335][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-cluster-data-0] File /usr/share/opensearch/config/esnode.pem has insecure file permissions (should be 0600)
[2022-08-01T23:19:49,335][WARN ][o.o.s.OpenSearchSecurityPlugin] [opensearch-cluster-data-0] File /usr/share/opensearch/config/esnode-key.pem has insecure file permissions (should be 0600)
[2022-08-01T23:19:50,222][INFO ][o.o.p.c.PluginSettings   ] [opensearch-cluster-data-0] Config: metric

Also do you mind installing charts with the version mentioned in the blog? You can use the flag --version 6.7.4

OpenSearch is 1.2.4 and 1.0.6 for OpenSearch Dashboards

@TheAlgo
"Also do you mind installing charts with the version mentioned in the blog? You can use the flag --version 6.7.4"
How do I install --version 6.7.4?
When I tried to specify the version in the helm install command but I have a syntax error response
Eg.   helm install opensearch-master opensearch/opensearch -f  master.yaml --version 6.7.4
Error: INSTALLATION FAILED: failed to download "opensearch/opensearch" at version "6.7.4"

@TheAlgo
After I run the helm repo update and helm search repo opensearch
The latest OpenSearch chart  version was opensearch/opensearch: 2.3.0 and opensearch/opensearch-dashboards: 2.2.4

@TheAlgo
I run into an error when running the securityadmin.sh Documentation
./securityadmin.sh -cd ../../../config/opensearch-security/ -icl -nhnv
-cacert ../../../config/root-ca.pem
-cert ../../../config/kirk.pem
-key ../../../config/kirk-key.pem
I receive the following error response :
* Try running securityadmin.sh with -icl (but no -cl) and -nhnv (If that works you need to check your clustername as well as hostnames in your TLS certificates)
 * Make sure that your keystore or PEM certificate is a client certificate (not a node certificate) and configured properly in opensearch.yml
 * If this is not working, try running securityadmin.sh with --diagnose and see diagnose trace log file)
 * Add --accept-red-cluster to allow securityadmin to operate on a red cluster.

Kindly find the logs attached: securityadmin_diag_trace


Cassandra liquibase usage

Hi, I tested this for use with Cassandra liquibase. It installs, but fails on a dummy project. See my post here
liquibase.exception.DatabaseException: Error executing SQL SELECT COUNT(*) FROM liquibase.DATABASECHANGELOGLOCK: Method was called on a closed Statement.
I did have the compliancemode turned on (the keyspace is also called liquibase: "jdbc:cassandra://<URL>/liquibase?localdatacenter=cassandra&compliancemode=Liquibase")
Is this used in production anywhere? I couldn't make sense of the databasechangeloglock error

Hello @bjornph,
Do you only got this error message or do you have a full stack trace to provide? It could be helpful to better understand where it fails exactly (because it seems that Liquibase tries to perform an operation on a closed statement, what necessarily throws an exception in JDBC driver).
Also, could you specify the versions you used and if you made some specific configurations or changes on the Liquibase side (where did you override the Simba driver for example)?
I noticed liquibase-cassandra seems more or less nested with Simba JDBC driver and found this very recent merge request on this project but not merged: https://github.com/liquibase/liquibase-cassandra/pull/205
Also, regarding the compliance mode, it has been introduced with the help of @mjok (see https://github.com/ing-bank/cassandra-jdbc-wrapper/pull/8) to adapt some behaviours to be compatible with liquibase-cassandra requirements (as they are documented here: https://github.com/ing-bank/cassandra-jdbc-wrapper#compliance-modes) but I don't know if he performed some other changes in its configuration or in liquibase to make it work properly.
Finally, to answer your last question: yes, I know at least one project using it in production (but not with Liquibase). The JDBC wrapper as also been tested several times to connect to a Cassandra database with DBeaver Community Edition for example. Unfortunately, I don't know all the potential applications using it. 😉 This project is still in development but now implements a large part of JDBC API (at least for the specifications compatible with a NoSQL database such as Cassandra).

Hello @bjornph,
I was able to reproduce the issue by rebuilding liquibase-cassandra with this JDBC wrapper.
I found the cause of the issue: closing the result set mistakenly was closing the statement. After fixing this (locally for now), I was able to successfully run the commands liquibase status and liquibase update-sql:
$> liquibase status --changelog-file=example-changelog.sql
[...]
1 changesets have not been applied to @jdbc:cassandra://localhost:9042/testkeyspace
     example-changelog.cql.sql::raw::includeAll
Logs saved to liquibase.log
Liquibase command 'status' was executed successfully.

$> liquibase update-sql --changelog-file=example-changelog.sql
[...]
-- Lock Database
UPDATE testkeyspace.DATABASECHANGELOGLOCK SET LOCKED = TRUE, LOCKEDBY = 'xxxx', LOCKGRANTED =<PHONE_NUMBER>562 WHERE ID = 1 IF LOCKED = FALSE;

-- Create Database Change Log Table
CREATE TABLE IF NOT EXISTS testkeyspace.DATABASECHANGELOG( ID TEXT, AUTHOR TEXT, FILENAME TEXT, DATEEXECUTED timestamp, ORDEREXECUTED INT, EXECTYPE TEXT, MD5SUM TEXT, DESCRIPTION TEXT, COMMENTS TEXT, TAG TEXT, LIQUIBASE TEXT, CONTEXTS TEXT, LABELS TEXT, DEPLOYMENT_ID TEXT,PRIMARY KEY (ID, AUTHOR, FILENAME));

-- *********************************************************************
-- Update Database Script
-- *********************************************************************
-- Change Log: example-changelog.sql
-- Ran at: 02/09/2023 16:14
-- Against: @jdbc:cassandra://localhost:9042/testkeyspace
-- Liquibase version: 4.23.1
-- *********************************************************************

-- Changeset example-changelog.cql.sql::raw::includeAll
CREATE KEYSPACE betterbotz
  WITH REPLICATION = {
   'class' : 'SimpleStrategy',
   'replication_factor' : 1
  };
USE betterbotz;
[...]

INSERT INTO testkeyspace.DATABASECHANGELOG (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, DESCRIPTION, COMMENTS, EXECTYPE, CONTEXTS, LABELS, LIQUIBASE, DEPLOYMENT_ID) VALUES ('raw', 'includeAll', 'example-changelog.sql',<PHONE_NUMBER>816, 1, '9:5ebad445bb1f43735b61600c376827d6', 'sql', '', 'EXECUTED', NULL, NULL, '4.23.1', NULL);

-- Release Database Lock
UPDATE testkeyspace.DATABASECHANGELOGLOCK SET LOCKED = FALSE, LOCKEDBY = NULL WHERE ID = 1;

Logs saved to liquibase.log
Liquibase command 'update-sql' was executed successfully.

However, I'm still facing an issue when running the command liquibase update:
$> liquibase update-sql --changelog-file=example-changelog.sql
[...]
Unexpected error running Liquibase: class liquibase.exception.UnexpectedLiquibaseException cannot be cast to class liquibase.exception.LiquibaseException (liquibase.exception.UnexpectedLiquibaseException and liquibase.exception.LiquibaseException are in unnamed module of loader java.net.URLClassLoader @7a81197d)

Logs saved to liquibase.log

I identified the root cause of this new issue as an SQL exception "Method was called on a closed ResultSet." when the method setFetchSize(int) is called in the method liquibase.snapshot.ResultSetCache.extract(ResultSet, boolean).
I continue to investigate this.

Hello @bjornph,
I finally fixed all the issues preventing to use this wrapper with Liquibase and I published a new version (4.9.1).
I was able to successfully execute the basic example provided in the liquibase-cassandra repository:
$> liquibase update --changelog-file=example-changelog.sql

[...]
Running Changeset: example-changelog.sql::raw::includeAll

UPDATE SUMMARY
Run:                          1
Previously run:               0
Filtered out:                 0
-------------------------------
Total change sets:            1

Liquibase: Update has been successful. Rows affected: 0
Logs saved to liquibase.log
Liquibase command 'update' was executed successfully.

And if I query my Cassandra database, the script is correctly executed:
cqlsh:testkeyspace> use betterbotz;
cqlsh:betterbotz> desc tables;

authors  posts

cqlsh:betterbotz> select * from authors;

 id | added                           | birthdate  | email                        | first_name | last_name
----+---------------------------------+------------+------------------------------+------------+-----------
  5 | 1990-02-04 02:32:00.000000+0000 | 2010-02-27 |<EMAIL_ADDRESS>|     Jayden |    Walter
  1 | 2004-05-30 02:08:25.000000+0000 | 1991-03-04 |<EMAIL_ADDRESS>|     Eileen |  Lubowitz
  2 | 2014-03-21 02:52:00.000000+0000 | 2016-03-27 |<EMAIL_ADDRESS>|      Tamia |    Mayert
  4 | 2019-04-22 02:04:41.000000+0000 | 2017-02-03 |<EMAIL_ADDRESS>|    Nicolas | Buckridge
  3 | 2011-06-24 18:17:48.000000+0000 | 1988-04-21 |<EMAIL_ADDRESS>|      Cyril |      Funk

(5 rows)
cqlsh:betterbotz> select * from posts;

 id | author_id | content                                                            | description | inserted_date | title
----+-----------+--------------------------------------------------------------------+-------------+---------------+------------
  5 |         5 |                  Rerum tempore quis ut nesciunt qui excepturi est. |   similique |    2006-10-09 |         ad
  1 |         1 |                                Fugit non et doloribus repudiandae. |  voluptatum |    2015-11-18 | temporibus
  2 |         2 | Tempora molestias maiores provident molestiae sint possimus quasi. |         aut |    1975-06-08 |         ea
  4 |         4 |                                     Magni nam optio id recusandae. |    deleniti |    2010-07-28 |     itaque
  3 |         3 |                            Delectus recusandae sit officiis dolor. |       rerum |    1975-02-25 |      illum

(5 rows)

Please note that this only works if the following prerequisites are met:

use Cassandra JDBC wrapper 4.9.1
the liquibase-cassandra jar must be modified to use this wrapper instead of Simba JDBC driver: see the changes in this pull request
the compliance mode Liquibase must be set in the JDBC URL
I also recommend to increase the value of the parameter requesttimeout in the JDBC URL (default value is 2 seconds),
especially if you use a CQL script as Liquibase changelog: indeed, the script is considered as a single statement and if
it contains a lot of queries, it could take more than 2 seconds in some circumstances.

@maximevw Wow! I was about to post the setup to recreate it, but you beat me to it, and solved the root problem as well!
Thank you very much. I think this will be a good alternative to the simba driver due to the uncertainties wrt. licensing.


Dont duplicate check items with parsing errors

Overview
Skip duplicate check for FacilityListItem which fail parsing
Demo
Before:

After:

Testing Instructions

On ogr/develop upload this list: test.csv, it should have many DUPLICATE errors for items w/o a country name or address
On this branch upload the same CSV - the empty rows should be in an ERROR_PARSING status instead

Checklist

[x] fixup! commits have been squashed
[x] CI passes after rebase
[x] CHANGELOG.md updated with summary of features or fixes, following Keep a Changelog guidelines
[x] This PR is targeted at the correct branch (develop vs. ogr/develop)
[ ] ~If this PR applies to both OAR and OGR a companion PR has been created~

Thanks @jwalgran and @maurizi. Can you confirm if we should re-test these lists? it looks like you deployed the fix for this.


Added some markdown editors

Project URL
https://github.com/Drovosek01/awesome-markdown/tree/additionals
Category
Editors
Description
Added some markdown editors. Please pull this changes for good logo view https://github.com/BubuAnabelas/awesome-markdown/pull/47
Why it should be included to awesome-markdown (optional)
Checklist

[x] Only one project/change is in this pull request
[x] Addition in alphabetical order
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          2 Warnings

:warning:
Too many changes (when adding, please keep it to one project per Pull Request)

:warning:
Found 1 link issue, a project collaborator will take care of these, thanks :)

Link issue by awesome_bot

Line
Status
Link

168
Error
https://markable.in/  Failed to open TCP connection to markable.in:443 (Connection refused - connect(2) for "markable.in" port 443)

  Generated by :no_entry_sign: Danger


Cacher resolver from URI

It's not working to define cacher with env
CACHER=redis://redis

Fixed. Released in v0.8.2


Do I have to show my address ?

Subject: Do I have to show my address ?
Description:
Sorry. This is not a bug. Just couldn’t find a way to mask my address on here and would rather just give it out when I make a connection to host. Able to do that?
Results:
Backend version: develop-7c33e18d
Frontend version:
User Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Mobile/15E148 Safari/604.1
Page: https://couchers.org/account-settings
User: jim53212 (18842)

It's in the small print: "Make sure your home is not at the center of the circle, so people will not know the exact location."


Broken PNN to PSN mapping for FNAL

Impact of the bug
WMAgent, JobAccountant
Describe the bug
During last night all agents has experiences the same error in JobAccountant: [1]. For some reason the PNN to PSN mapping for T1_US_FNAL does not work. It seems WMBS is missing a record for this mapping
PNN doesn't exist in wmbs_pnns table: T1_US_FNAL

As a  result all agents get stuck, because upon every restart JobAccountant gets back to this very same error and crashes.
The DAO responsible for this mapping is: WMCore/WMBS/Locations/GetPNNtoPSNMapping.
In general the component is not misbehaving, it does the right think in this case. On the other hand, the reason why this mapping is missing from the table itself is to be investigated.
How to reproduce it
Send a workflow to a site with missing record in the wmbs_pnns table.
Expected behavior
Not having missing records for major sites (both T1_* && T2_*).
Additional context and error message
[1]
2022-09-15 14:24:01,497:140628874274560:ERROR:BaseWorkerThread:Error in event loop (2): <WMComponent.JobAccountant.JobAccountantPoller.JobAccountantPoller object at 0x7fe6c4c89220> <@========== WMException Start ==========@>
Exception Class: AccountantWorkerException
Message: PNN doesn't exist in wmbs_pnns table: T1_US_FNAL (investigate)
        ClassName : None
        ModuleName : WMComponent.JobAccountant.AccountantWorker
        MethodName : handleWMBSFiles
        ClassInstance : None
        FileName : /data/srv/wmagent/v2.1.2/sw/slc7_amd64_gcc630/cms/wmagentpy3/2.1.2/lib/python3.8/site-packages/WMComponent/JobAccountant/AccountantWorker.py
        LineNumber : 812
        ErrorNr : 0

Traceback:

<@---------- WMException End ----------@>
Backtrace:
  File "/data/srv/wmagent/v2.1.2/sw/slc7_amd64_gcc630/cms/wmagentpy3/2.1.2/lib/python3.8/site-packages/WMCore/WorkerThreads/BaseWorkerThread.py", line 209, in __call__
    raise ex
  File "/data/srv/wmagent/v2.1.2/sw/slc7_amd64_gcc630/cms/wmagentpy3/2.1.2/lib/python3.8/site-packages/WMCore/WorkerThreads/BaseWorkerThread.py", line 183, in __call__
    tSpent, results, _ = algorithmWithDBExceptionHandler(parameters)
  File "/data/srv/wmagent/v2.1.2/sw/slc7_amd64_gcc630/cms/wmagentpy3/2.1.2/lib/python3.8/site-packages/WMCore/Database/DBExceptionHandler.py", line 40, in wrapper
    return f(*args, **kwargs)
  File "/data/srv/wmagent/v2.1.2/sw/slc7_amd64_gcc630/cms/wmagentpy3/2.1.2/lib/python3.8/site-packages/Utils/Timers.py", line 26, in wrapper
    res = func(*arg, **kw)
  File "/data/srv/wmagent/v2.1.2/sw/slc7_amd64_gcc630/cms/wmagentpy3/2.1.2/lib/python3.8/site-packages/WMComponent/JobAccountant/JobAccountantPoller.py", line 70, in algorithm
    self.accountantWorker(jobsSlice)
  File "/data/srv/wmagent/v2.1.2/sw/slc7_amd64_gcc630/cms/wmagentpy3/2.1.2/lib/python3.8/site-packages/WMComponent/JobAccountant/AccountantWorker.py", line 247, in __call__
    self.handleWMBSFiles(self.wmbsFilesToBuild, self.parentageBinds)
  File "/data/srv/wmagent/v2.1.2/sw/slc7_amd64_gcc630/cms/wmagentpy3/2.1.2/lib/python3.8/site-packages/WMComponent/JobAccountant/AccountantWorker.py", line 812, in handleWMBSFiles
    raise AccountantWorkerException(msg)

FYI @amaltaro

According to CRIC, the FNAL PNNxPSN map is:
    [
      "T1_US_FNAL_Disk",
      "T1_US_FNAL"
    ],

as can be seen in this API: http://cms-cric.cern.ch/api/cms/site/query/?json&preset=data-processing
Looking into what is available in SITECONF, I see two different site-local-config files for different "sites":
amaltaro@lxplus721:~ $ grep phedex /cvmfs/cms.cern.ch/SITECONF/T1_US_FNAL/JobConfig/site-local-config.xml
    <phedex-node value="T1_US_FNAL"/>
amaltaro@lxplus721:~ $ grep phedex /cvmfs/cms.cern.ch/SITECONF/T1_US_FNAL_Disk/JobConfig/site-local-config.xml
    <phedex-node value="T1_US_FNAL_Disk"/>

I think production jobs are loading the first one (T1_US_FNAL), but could you please cross-check it with a couple of recent job logs? @todor-ivanov
If jobs are reporting location for the files staged out to the local FNAL storage as T1_US_FNAL, then yes, things will fail pretty badly because the mapping in the agent is PSN=T1_US_FNAL / PNN=T1_US_FNAL_Disk.
For the record, Rucio only knows this RSE: T1_US_FNAL_Disk

I have just checked few somehow older but successful workflows (from June) and they seem to have been loading the T1_US_FNAL_Disk site local config: [1].
[1]
2022-09-12 23:41:40,863:INFO:DeleteMgr:Local Stage Out Implementation to be used is:xrdcp
Local Stage Out PNN to be used is T1_US_FNAL_Disk
Local Stage Out Catalog to be used is trivialcatalog_file:/cvmfs/cms.cern.ch/SITECONF/T1_US_FNAL_Disk/PhEDEx/storage.xml?protocol=writexrd
Trivial File Catalog has been loaded:
        lfn-to-pfn: protocol=xrd path-match-re=/+store/(.*) result=root://cmsxrootd-site.fnal.gov//store/$1
        lfn-to-pfn: protocol=fallbackxrd path-match-re=/+store/(.*) result=root://cmsxrootd.fnal.gov//store/$1
        lfn-to-pfn: protocol=writexrd path-match-re=/+store/temp/user/(.*) result=root://cmseos.fnal.gov//eos/uscms/store/temp/user/$1
        lfn-to-pfn: protocol=writexrd path-match-re=/+store/(.*) result=root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/$1

We should look into jobs that are more recent, something like the last 48h to see if anything new was inserted on the FNAL/SITECONF site.
Adding a debugging log on vocms0255 - which has been draining for a week or two - here is the problem:
2022-09-16 12:52:45,329:140440841201408:INFO:AccountantWorker:AMR file {'lfn': '/store/unmerged/logs/prod/2022/9/15/cmsunified_task_HIG-RunIISummer20UL18wmLHEGEN-06314__v1_T_220609_155935_8759/HIG-RunIISummer20UL18wmLHEGEN-06314_0/HIG-Run
IISummer20UL18RECO-05024_0MergeAODSIMoutput/0000/0/f1d6786f-4905-4dc5-857a-28c35d75e20a-0-0-logArchive.tar.gz', 'size': 0, 'events': 0, 'checksums': {'adler32': 'a140bea4', 'cksum': '770620935'}, 'runs': set(), 'merged': False, 'last_even
t': 0, 'first_event': 0, 'locations': {'T1_US_FNAL'}, 'parents': set(), 'pfn': 'root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/unmerged/logs/prod/2022/9/15/cmsunified_task_HIG-RunIISummer20UL18wmLHEGEN-06314__v1_T_220609_155935_8759/H
IG-RunIISummer20UL18wmLHEGEN-06314_0/HIG-RunIISummer20UL18RECO-05024_0MergeAODSIMoutput/0000/0/f1d6786f-4905-4dc5-857a-28c35d75e20a-0-0-logArchive.tar.gz', 'branches': [], 'input': [], 'inputpfns': [], 'branch_hash': None, 'catalog': '',
'guid': '', 'module_label': 'logArchive', 'dataset': {}, 'acquisitionEra': None, 'processingVer': 0, 'validStatus': None, 'globalTag': None, 'prep_id': None, 'configURL': None, 'inputPath': None, 'outputModule': 'logArchive', 'fileRef': <
WMCore.Configuration.ConfigSection object at 0x7fbaed46ad30>} has location: {'T1_US_FNAL'}

while a healthy job reports:
2022-09-16 12:52:45,384:140440841201408:INFO:AccountantWorker:AMR file {'lfn': '/store/unmerged/logs/prod/2022/9/15/cmsunified_task_HIG-RunIISummer20UL18wmLHEGEN-06169__v1_T_220609_152516_8624/HIG-RunIISummer20UL18wmLHEGEN-06169_0/HIG-RunIISummer20UL18MiniAODv2-04825_0MergeMINIAODSIMoutput/0000/0/fc927f93-e202-4888-86c5-918dd3736a46-0-0-logArchive.tar.gz', 'size': 0, 'events': 0, 'checksums': {'adler32': '79dd8e31', 'cksum': '308106905'}, 'runs': set(), 'merged': False, 'last_event': 0, 'first_event': 0, 'locations': {'T1_US_FNAL_Disk'}, 'parents': set(), 'pfn': 'root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/unmerged/logs/prod/2022/9/15/cmsunified_task_HIG-RunIISummer20UL18wmLHEGEN-06169__v1_T_220609_152516_8624/HIG-RunIISummer20UL18wmLHEGEN-06169_0/HIG-RunIISummer20UL18MiniAODv2-04825_0MergeMINIAODSIMoutput/0000/0/fc927f93-e202-4888-86c5-918dd3736a46-0-0-logArchive.tar.gz', 'branches': [], 'input': [], 'inputpfns': [], 'branch_hash': None, 'catalog': '', 'guid': '', 'module_label': 'logArchive', 'dataset': {}, 'acquisitionEra': None, 'processingVer': 0, 'validStatus': None, 'globalTag': None, 'prep_id': None, 'configURL': None, 'inputPath': None, 'outputModule': 'logArchive', 'fileRef': <WMCore.Configuration.ConfigSection object at 0x7fbaed0396d0>} has location: {'T1_US_FNAL_Disk'}

I see the following next actions:

create a temporary workaround that will convert file locations from T1_US_FNAL to T1_US_FNAL_Disk
contact Dave Mason and/or Stephan Lammel to confirm whether any changes (or mistakes) were done on the FNAL SITECONF
patch and restart JobAccountant in all the nodes connected to the production system (including relval)

And here is another one  which is having the proper configuration:
2022-09-16 15:41:23,467:139668546623232:INFO:AccountantWorker:PNN found in wmbs_pnns table: T1_US_FNAL_Disk
wmbsFile:
{'acquisitionEra': None,
 'branch_hash': None,
 'branches': [],
 'catalog': '',
 'checksums': {'adler32': '12444c61', 'cksum': '1238207427'},
 'configURL': None,
 'dataset': {},
 'events': 0,
 'fileRef': <WMCore.Configuration.ConfigSection object at 0x7f071d11e130>,
 'first_event': 0,
 'globalTag': None,
 'guid': '',
 'id': -1,
 'input': [],
 'inputPath': None,
 'inputpfns': [],
 'jid': 4802758,
 'last_event': 0,
 'lfn': '/store/unmerged/logs/prod/2022/9/16/cmsunified_task_HIG-RunIISummer20UL18wmLHEGEN-06297__v1_T_220609_165604_1369/HIG-RunIISummer20UL18wmLHEGEN-06297_0/HIG-RunIISummer20UL18RECO-0499
4_0MergeAODSIMoutput/0000/0/c2c2e5d4-b0d3-438c-ad19-090bb83d9cad-0-0-logArchive.tar.gz',
 'locations': {'T1_US_FNAL_Disk'},
 'merged': False,
 'module_label': 'logArchive',
 'newlocations': {'T1_US_FNAL_Disk'},
 'outputModule': 'logArchive',
 'parents': set(),
 'pfn': 'root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/unmerged/logs/prod/2022/9/16/cmsunified_task_HIG-RunIISummer20UL18wmLHEGEN-06297__v1_T_220609_165604_1369/HIG-RunIISummer20UL18wmL
HEGEN-06297_0/HIG-RunIISummer20UL18RECO-04994_0MergeAODSIMoutput/0000/0/c2c2e5d4-b0d3-438c-ad19-090bb83d9cad-0-0-logArchive.tar.gz',
 'prep_id': None,
 'processingVer': 0,
 'runs': set(),
 'size': 0,
 'validStatus': None}

With 'jid': 4802758 and JobCreater area:
cmst1@vocms0255:/data/srv/wmagent/current $ find install/wmagentpy3/JobCreator/JobCache/ -name \*4802758\*
install/wmagentpy3/JobCreator/JobCache/cmsunified_task_HIG-RunIISummer20UL18wmLHEGEN-06297__v1_T_220609_165604_1369/HIG-RunIISummer20UL18wmLHEGEN-06297_0/HIG-RunIISummer20UL18RECO-04994_0MergeAODSIMoutput/JobCollection_510294_0/job_4802758

And here it does use the correct SITECONF (fetched from wmagentJob.log):
2022-09-16 11:00:34,706:INFO:StageOutMgr:=======StageOut Override: These are not the parameters you are looking for
2022-09-16 11:00:34,722:INFO:StageOutMgr:==== Stageout configuration start ====
2022-09-16 11:00:34,722:INFO:StageOutMgr:Local Stage Out Implementation to be used is: xrdcp
Local Stage Out PNN to be used is T1_US_FNAL_Disk
Local Stage Out Catalog to be used is trivialcatalog_file:/cvmfs/cms.cern.ch/SITECONF/T1_US_FNAL_Disk/PhEDEx/storage.xml?protocol=writexrd
Trivial File Catalog has been loaded:
        lfn-to-pfn: protocol=xrd path-match-re=/+store/(.*) result=root://cmsxrootd-site.fnal.gov//store/$1
        lfn-to-pfn: protocol=fallbackxrd path-match-re=/+store/(.*) result=root://cmsxrootd.fnal.gov//store/$1
        lfn-to-pfn: protocol=writexrd path-match-re=/+store/temp/user/(.*) result=root://cmseos.fnal.gov//eos/uscms/store/temp/user/$1
        lfn-to-pfn: protocol=writexrd path-match-re=/+store/(.*) result=root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/$1
There are 0 fallback stage out definitions.

2022-09-16 11:00:34,722:INFO:StageOutMgr:==== Stageout configuration finish ====

And the machine processing the job onsite was(fetched from condor*.out):
======== WMAgent bootstrap STARTING at Fri Sep 16 10:48:27 GMT 2022 ========
User id:    uid=... gid=... groups=...
Local time: Fri Sep 16 10:48:27 UTC 2022
Hostname:   cmsgli-1053657-0-cmswn3013.fnal.gov
System:     Linux cmsgli-1053657-0-cmswn3013.fnal.gov 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 08:19:35 CDT 2022 x86_64 x86_64 x86_64 GNU/Linux
Arguments:  cmsunified_task_HIG-RunIISummer20UL18wmLHEGEN-06297__v1_T_220609_165604_1369-Sandbox.tar.bz2 4802758 0
Site name:  T1_US_FNAL
======== HTCondor jobAds start at Fri Sep 16 10:48:27 GMT 2022 ========

And here is the GGUs ticket for T1_US_FNAL in case they may have some more insights on why some jobs read the wrong SITECONF:
https://ggus.eu/?mode=ticket_info&ticket_id=158930
FYI: @amaltaro @vkuznet @klannon @khurtado

@amaltaro, this seems to have done the job and I think it is not not needed any more. We may close that  issue. what do you think?

@todor-ivanov please update the PR and close that one as well.


Upgrade Chalk

@flodiebold do we want to get this into today's release?

I don't think there's any upside, so let's wait until after.

Upgraded again. This one required some more changes because of https://github.com/rust-lang/chalk/pull/360.

Hm, let's try to get this into today's release at least (unless you strongly object) :)
I think that, by updating chalk frequently, we should be able to find regressions quicker.
bors r+

Yeah, also I wouldn't want to leave this lying around for long because of merge conflicts :grimacing:


Issue when bundling with gulp.

Hi,
We wanted to change the CDN to point to our environment. Hence, we followed following steps:

Downloaded the latest source code (https://github.com/OlivierCC/spfx-40-fantastics/archive/1.0.4.zip), unzipped it, & changed the CDN path on file  "write-manifests.json"
Ran the "npm-install" command to get the packages.
Ran the "gulp bundle --ship" command. After entering this command, it gives 11034 errors. Shows o/p as below in end:

[10:23:37] Project spfx-40-fantastics version: 1.0.4
[10:23:37] Build tools version: 2.5.3
[10:23:37] Node version: v8.15.1
[10:23:37] Total duration: 1.03 min
[10:23:37] Task warnings: 11
[10:23:37] Task errors: 11034
Versions that we are using:
Node: v 8.15.1
gulp:
CLI version 2.1.0
Local version 3.9.1
Please let me know why are we getting these errors. Are we doing anything wrong? Are we missing any step?

I also have this issue. Same node/gulp versions.


Please add support for Go

Hi,
You can use Golang as a language for Lambdas, this is a growing language and something we have started to experiment with and use as a languages for some services to get performance gains.
Please could you add Go as a language you support for your serverless plugin.
Many Thanks,
Mark

@msainty This plugin is designed to get the latest New Relic Lambda Layer for the runtime. For Node, Python, and Java, that allows customers to instrument code without code changes. Go Lambda functions, since they're compiled, can't be instrumented without a code change. For Go, you'd want to instrument the function, and then ship the compiled function with the NR Go agent installed.
What this plugin could do in that case is supply you with the Extension-only Lambda Layer, for shipping telemetry to NR, though you could get the same functionality without the plugin--you'd just need to install the Extension only layer and add some environment variables. Is that something like the functionality you're thinking of?


OpenAPIDeserializer- NullPointerException when setting default and schema type is null

When try to set default value, NullPonterException is thrown when checking schema type is it is not defined in spécifications.

it'is introduced by the commit c7021bd9988aed7ef2fad79326cf7e078f408a09 on Feb 15.

Hi can you please share your spec?

openapi: 3.0.0
info:
title: Test
version: 1.0.0
paths:
/value:
get:
operationId: getValues
responses:
200:
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ComponentA'
components:
schemas:
ComponentA:
description: Component A
type: object
allOf:
- type: object
properties:
attributeWithoutType:
type: "is not deined"
          allOf:
          - $ref: '#/components/schemas/ComponentB'
          default: "coucou"
        attributeWithWrongType:
          type: object
          allOf:
            - $ref: '#/components/schemas/ComponentB'
          default: "coucou"
        correctAttribute:
          type: string
          allOf:
            - $ref: '#/components/schemas/ComponentB'
          default: "coucou"
ComponentB:
  description: Component B
  type: string

i made a fix but i have not right tu push in a branch
could you give me right please

this is linked pull request
https://github.com/swagger-api/swagger-parser/pull/1073
Thanks a lot

Thanks for the Pr, I see the issue and will push a solution.

Hi @sgadouar the pr you summited was not passing the build. So I push a PR to avoid the NPE.
Please let me know if the issue keeps happening

Hello @gracekarina
Sorry for late
It's fine for me, your PR corrected the issue.
Do you know when release will be done ?
i ask this question because we need this fix for open-api-generator project :)
Thanks a lot


Non-interactive mode?

This tool is far cooler than one might expect. Thanks for creating it!
Do you plan to parameterize it?

Not planned for now, sorry.

I sent you an email regarding with related information. Let me know if it didn't get through.


Errors with Cesium for Unity package (created through developer guide)

From this forum post.
Following the developer guide, the user successfully produced a .tgz file, but ran into errors while importing in Package Manager:
Unity.SourceGenerators\Unity.MonoScriptGenerator.MonoScriptInfoGenerator\AssemblyMonoScriptTypes.gen.cs(5,20): error CS0101: The namespace ‘’ already contains a definition for ‘UnitySourceGeneratedAssemblyMonoScriptTypes_v1’

Unity.SourceGenerators\Unity.MonoScriptGenerator.MonoScriptInfoGenerator\AssemblyMonoScriptTypes.gen.cs(2,6): error CS0579: Duplicate ‘System.Runtime.CompilerServices.CompilerGenerated’ attribute

Unity.SourceGenerators\Unity.MonoScriptGenerator.MonoScriptInfoGenerator\AssemblyMonoScriptTypes.gen.cs(3,6): error CS0579: Duplicate ‘System.ComponentModel.EditorBrowsableAttribute’ attribute

Unity.SourceGenerators\Unity.MonoScriptGenerator.MonoScriptInfoGenerator\AssemblyMonoScriptTypes.gen.cs(4,6): error CS0579: Duplicate ‘System.CodeDom.Compiler.GeneratedCodeAttribute’ attribute

Unity.SourceGenerators\Unity.MonoScriptGenerator.MonoScriptInfoGenerator\AssemblyMonoScriptTypes.gen.cs(301,40): error CS0111: Type ‘UnitySourceGeneratedAssemblyMonoScriptTypes_v1’ already defines a member called ‘Get’ with the same parameter types

Unity.SourceGenerators\Unity.MonoScriptGenerator.MonoScriptInfoGenerator\AssemblyMonoScriptTypes.gen.cs(276,10): error CS0579: Duplicate ‘System.Runtime.InteropServices.StructLayout’ attribute

Another forum user responded with the following fix:

Fixed it by opening the tar.gz and the tar inside it and doing the following modifications:
com.cesium.unity-1.8.0\package\Editor\generated\Unity.SourceGenerators\Unity.MonoScriptGenerator.MonoScriptInfoGenerator\AssemblyMonoScriptTypes.gen.cs:
class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 → UnitySourceGeneratedAssemblyMonoScriptTypes_v2
com.cesium.unity-1.8.0\package\Runtime\generated\Unity.SourceGenerators\Unity.MonoScriptGenerator.MonoScriptInfoGenerator\AssemblyMonoScriptTypes.gen.cs (there are 2 classes named UnitySourceGeneratedAssemblyMonoScriptTypes_v1):
class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 → UnitySourceGeneratedAssemblyMonoScriptTypes_v3
class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 → UnitySourceGeneratedAssemblyMonoScriptTypes_v4
After that do “Add package from disk…” in the Package Manager

I think this is related to https://github.com/CesiumGS/cesium-unity/issues/156. If so, another workaround is to use Unity 2021.3 to package the plugin.


Bug or not? Osmium Compresser not working corecctly

Hey,
I found a bug (or not) with the Osmium Compresser to get Glowstone Ingot and Refined Obsidian Ingot.
The Problem is that, if I am putting in 1 glowstone dust and one osmium ingot all went fine, but if it's two or more of them (same goes to with the refined obsidian ingot) then it won't create two outputs.
So my question: Is this normal or is this a bug? Because the recipe in NEI tells me to use one RFI/GI with one Osmium Ingot but this seems not be true at all.
Also I don't tested it with a higher tier of that machine.

There is some slight loss osmium as a result of the operation, so in reality a small fraction more of osmium is required than just one ingot.


Combining submodels

Following from #49
If each submodel (e.g. StefanMaxwellDiffusion) is a Model in its own right, we should have a function which allows for the simple concatenation of two submodels e.g. the functionality:
basemodel.create_from_submodels([submodelA, submodelB, submodelC, etc])

This would concatenate the rhs, initial_conditions, boundary_conditions, variables dictionaries.
It is possible that overlapping variable names may become an issue (e.g. concentration in negative and positive particle if within the particle expression they are simply called c). By associating a unique name to each submodel when it is initially defined, this could be avoided.

Adding to this. It may be good to have a parent class Model which contains the basic setting, getting, and empty required dictionaries. We could then have two subclasses: BaseModel and SubModel. The BaseModel would have the additional method of combining SubModels. The SubModel class would contain an additional 'name' attribute.

You could probably implement the __init__ of the BaseModel to take an argument that was a list of models, then just create the concatenated model there, that way you ensure that basemodel is starting out empty

How about an update function that can update a model's rhs, initial_conditions, boundary_conditions and variables using a submodel?

I think this is a good idea. I think the create_from_submodels function I defined above would basically just loop through the submodels calling that update function. I think we should have both an update function and a create from submodels function. One offers the user the option of easily appending some additional physics to a model whilst the other offers a clean way to piece together many submodels at once without needing to write the update function every time.

Yep sounds good.

Closed by #108


close the log in SimpleDataFetcherExceptionHandler

i want to close the log output in SimpleDataFetcherExceptionHandler, what shoud i do?
i have try use logging.level.graphql.execution.SimpleDataFetcherExceptionHandler=none, but it's not working

You want to reduce the number of logging messages? That class is part of the graphql-java project, not this one. And your question is more generic Spring Boot related. You should double check the documentation of Spring Boot itself what values are supported there. Top of mind I'm not sure if "none" is a valid value. Seeing that particular class only seems to be logging with "warn" level, you could set it to "error" instead.
Having said that: if it's logging warnings and apparently in the amount that it's annoying you. Shouldn't you be actually looking at those warnings and trying to fix them or are they all expected anyway and can be safely ignored?


Why not put the broker in silo?

Hi @SeppPenner ,
I was very inspired by this project.
But I have a question, can we make the broker and silo run in the same service? Instead of being a ClusterClient. If this works, the brokers can follow silo in the cluster.
Best Regards.

It's not really load balancing as we know it in a classical way, but Orleans offers load balancing (https://dotnet.github.io/orleans/docs/implementation/load_balancing.html). I didn't want to re-invent things and therefore rely on the Orleans standard machanisms :)

Yes, I would also like to take advantage of Orleans' clustering mechanism. Orleans' silo is embedded load balancing, using one of the nodes as a gateway endpoint.
I want the Mqtt Broker to also take advantage of Orleans' cluster implementation for routing Mqtt messages


Two tasks numbered 119!

Hi!
For some reason we have two tasks numbered 119.

Yeah, I pointed this out in #224. Daniel said he was going to worry about renumbering tasks at the end once everything else is finalized.

We also have two tasks numbered 868

There are also two tasks numbered 672

@danyaljj Are we going to renumber all the tasks?
If not, I can simply renumber the repeating task numbers.

Thanks! We should definitely address these and have a test that prevents repeated numbers.


Parameterize the file output name so that it can be used for more than just Doom engine purposes

Decided to keep the scope of this project strictly for Doom engines only