ERR failed to create storage space error

Hello,

my current deployment of Owncloud Infinite State (OCIS) version 3.0.0-rc.1 on a single K3S node with the data stored locally is working fine. But when I destroy the VM with K3S and OCIS deployed and recreate the VM, reinstall K3S, redeploy OCIS and restore the local data the pod is crashing and I get the following error:

2023-05-18T07:40:51Z ERR failed to create storage space error="xattr.get /var/lib/ocis/storage/metadata/spaces/js/oncs3-public-share-manager-metadata/nodes/js/on/cs/3-/public-share-manager-metadata user.ocis.name: no data available" pkg=rgrpc request={"name":"Metadata","opaque":{"map":{"spaceid":{"decoder":"plain","value":"anNvbmNzMy1wdWJsaWMtc2hhcmUtbWFuYWdlci1tZXRhZGF0YQ=="}}},"owner":{"id":{"idp":"internal","opaque_id":"196b0e30-2266-4afa-a43d-b5de5141f01b"}},"type":"metadata"} service=storage-system status={"code":15,"message":"error creating space","trace":"00000000000000000000000000000000"} traceid=00000000000000000000000000000000
2023-05-18T07:40:51Z ERR error starting the grpc server error="unable to register services: rgrpc: grpc service publicshareprovider could not be started,: internal error: error creating space" service=sharing

Which data or environment variable do I need to restore or set to get it working? Below the needed part of my deployment.

apiVersion: v1
kind: ConfigMap
metadata:
  name: ocis-config
  namespace: ocis
  labels:
    app: ocis
data:
  PROXY_TLS: "false"
  OCIS_INSECURE: "true"
  OCIS_LOG_PRETTY: "true"
  OCIS_URL: "https://ocis.example.org"
  OCIS_ADMIN_USER_ID: "..."
  LDAP_URI: ldaps://192.168.0.10:636
  LDAP_INSECURE: "true"
  LDAP_BIND_DN: "cn=admin,dc=example,dc=org"
  LDAP_BIND_PASSWORD: "..."
  LDAP_USER_BASE_DN: "ou=users,dc=example,dc=org"
  LDAP_USER_OBJECTCLASS: "inetOrgPerson"
  LDAP_LOGIN_ATTRIBUTES: "uid"
  LDAP_GROUP_BASE_DN: "ou=groups,dc=example,dc=org"
  LDAP_GROUP_FILTER: "(objectclass=owncloud)"
  LDAP_GROUP_OBJECTCLASS: "groupOfNames"
  LDAP_USER_FILTER: "(objectclass=owncloud)"
  IDP_LDAP_LOGIN_ATTRIBUTE: "uid"
  IDP_LDAP_UUID_ATTRIBUTE: "ownclouduuid"
  IDP_LDAP_UUID_ATTRIBUTE_TYPE: binary
  GRAPH_LDAP_SERVER_WRITE_ENABLED: "true" # assuming the external ldap is writable
  GRAPH_LDAP_REFINT_ENABLED: "true" # osixia has refint enabled.
  # OCIS_RUN_SERVICES specifies to start all services except glauth, idm and accounts. These are replaced by external services
  OCIS_RUN_SERVICES: app-registry,app-proviorgr,audit,auth-basic,auth-machine,frontend,gateway,graph,groups,idp,nats,notifications,ocdav,ocs,proxy,search,settings,sharing,storage-system,storage-publiclink,storage-shares,storage-users,store,thumbnails,users,web,webdav
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: ocis-pv
  labels:
    app: ocis
spec:
  storageClassName: local-path
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/data/ocis"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: ocis-pvc
  namespace: ocis
  labels:
    app: ocis
spec:
  storageClassName: local-path
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  volumeName: ocis-pv
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ocis-deployment
  namespace: ocis
  labels:
    app: ocis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ocis
  template:
    metadata:
      labels:
        app: ocis
    spec:
      containers:
      - name: ocis
        image: owncloud/ocis:3.0.0-rc.1
        command: ["/bin/sh"]
        args: [ "-c", "ocis init || true; ocis server" ]
        envFrom:
        - configMapRef:
            name: ocis-config
        env:
        - name: ADMIN_PASSWORD
          valueFrom:
            secretKeyRef:
              key: ocis_admin_password
              name: ocis-secrets
        volumeMounts:
          - mountPath: /etc/ocis
            name: ocis-data
            subPath: config
          - mountPath: /var/lib/ocis
            name: ocis-data
            subPath: data
        ports:
        - name: http
          containerPort: 9200
      volumes:
        - name: ocis-data
          persistentVolumeClaim:
            claimName: ocis-pvc

Thanks,
Klaas

1 Like

Any luck with this?
I’m facing the same issue

No sorry, unfortunately not.

Looking at the error message you posted it says xattr.get ... no data available - which would hint me that your local data restore left either extended file attributes or dot files or both behind.

Can you double check that you restored the local storage including these two?

Not a direct solution for the described behavior, but OCIS version 3.0.0 has been released in the meantime. It is using “messagepack” instead of “XATTR”, which should prevent such errors.

This decision was made because extended attributes are limited and have some issues using shared filesystems. Messagepack is a straightforward binary format.

Please beware of breaking changes and have a look in the according release notes.

1 Like

Yes the error message hints that there is something wrong with the storage.

To be clear: You are not updating ocis version you are only redeploying same version, right?

Another unrelated thing I found: You are using OCIS_RUN_SERVICES to run all ocis services except glauth, idm and accounts. You could use OCIS_EXCLUDE_RUN_SERVICES=glauth,idm,accounts instead. This way you don’t have to change your config when a new micro service is released.

1 Like