Skip to content

UB Trace overwrites custom data with demo files on startup #4

@gavin-dunlap-luminar

Description

@gavin-dunlap-luminar

Describe the bug
User data copied to the directory mounted against /home/useblocks/app/docs/ubtrace is overwritten on server startup and replaced with demo data. I wouldn't expect user data to be cleared without error, warnings, etc.

To Reproduce
Steps to reproduce the behavior:

  1. Build project with ubt builder
  2. Deploy project to server folder /data/ubtrace/ and /data/ubtrace/ubtrace_server.toml (both files having been generated by the builder)
  3. Verify folder contents
  4. Mount /data/ubtrace to the docker image in docker-compose config
  5. Start container
  6. Check folder contents again, user data is gone and replaced by example data.
Long-Form Explanation

I am referencing the documentation below for the processes I am following:

Basically, as the docs describes, you can mount custom data into the ubtrace docker by mounting a volume to /home/useblocks/app/docs/ubtrace.

I have using the following docker setup:

  ubtrace:
    image: ghcr.io/useblocks/ubtrace:latest
    depends_on:
      - vis-tree
      - oidc
    ports:
      - "7100:7130"
    working_dir: /
    volumes:
      - /data/ubtrace:/home/useblocks/app/docs/ubtrace/
    environment:
      MESSAGE: Starting ubTrace on localhost:7130
      PUBLIC_VIS_TREE_HOST: localhost:7140
      UBTRACE_SERVER_VIS_TREE_INTERNAL_HOST: http://vis-tree:7140
      UBTRACE_SERVER_AUTH_ISSUER_URL: localhost:7180
      UBTRACE_SERVER_AUTH_DISCOVER_URL: localhost:7180/.well-known/openid-configuration

Here, I mount my files in /data/ubtrace/<project> and /data/ubtrace/ubtrace_server.toml, these files are generated via the ubt_sphinx builder as described here: https://ubtrace.useblocks.com/usage/builder.html#builder, specifically, with sphinx-build -b ubtrace . <output>

I then run the following commands to start the server:

sudo docker-compose up -d && sudo docker-compose start

Once I check the /data/ubtrace directory again, my file contents have been replaced by the demo-project. No errors are mentioned in the logs.

ubtrace_1   | Executing shared entrypoint initialization...
ubtrace_1   | CURRENT USER 0:0
ubtrace_1   | GIVEN USER :
ubtrace_1   | Using internal user id
ubtrace_1   | Using internal group id
ubtrace_1   | Warning: GID 0 is already in use by group 'root'. Remapping 'root' to a new GID.
ubtrace_1   | Shared entrypoint initialization complete.
ubtrace_1   | ☕ Copy doc files from temp-folder to ubTrace location
ubtrace_1   | 🧰 Generating Kuzu DB files
ubtrace_1   | Processing: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v3/docs/ubtrace/needs.jsonW
ubtrace_1   | Created/using db folder: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v3/db/needs.kuzu
ubtrace_1   | Successfully read /home/useblocks/app/docs/ubtrace/useblocks/showcase/v3/docs/ubtrace/needs.json
ubtrace_1   | Found 18 need(s)
ubtrace_1   | Removing existing output directory
ubtrace_1   | Kuzu DB written to /home/useblocks/app/docs/ubtrace/useblocks/showcase/v3/db/needs.kuzu
ubtrace_1   | Processing: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v2/docs/ubtrace/needs.jsonW
ubtrace_1   | Created/using db folder: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v2/db/needs.kuzu
ubtrace_1   | Successfully read /home/useblocks/app/docs/ubtrace/useblocks/showcase/v2/docs/ubtrace/needs.json
ubtrace_1   | Found 14 need(s)
ubtrace_1   | Removing existing output directory
ubtrace_1   | Kuzu DB written to /home/useblocks/app/docs/ubtrace/useblocks/showcase/v2/db/needs.kuzu
ubtrace_1   | Processing: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v4/docs/ubtrace/needs.jsonW
ubtrace_1   | Created/using db folder: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v4/db/needs.kuzu
ubtrace_1   | Successfully read /home/useblocks/app/docs/ubtrace/useblocks/showcase/v4/docs/ubtrace/needs.json
ubtrace_1   | Found 22 need(s)
ubtrace_1   | Removing existing output directory
ubtrace_1   | Kuzu DB written to /home/useblocks/app/docs/ubtrace/useblocks/showcase/v4/db/needs.kuzu
ubtrace_1   | Processing: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v1/docs/ubtrace/needs.jsonW
ubtrace_1   | Created/using db folder: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v1/db/needs.kuzu
ubtrace_1   | Successfully read /home/useblocks/app/docs/ubtrace/useblocks/showcase/v1/docs/ubtrace/needs.json
ubtrace_1   | Found 14 need(s)
ubtrace_1   | Removing existing output directory
ubtrace_1   | Kuzu DB written to /home/useblocks/app/docs/ubtrace/useblocks/showcase/v1/db/needs.kuzu
ubtrace_1   | Processing: /home/useblocks/app/docs/ubtrace/useblocks/sphinx-needs-demo/1/docs/ubtrace/needs.jsonW
ubtrace_1   | Created/using db folder: /home/useblocks/app/docs/ubtrace/useblocks/sphinx-needs-demo/1/db/needs.kuzu
ubtrace_1   | Successfully read /home/useblocks/app/docs/ubtrace/useblocks/sphinx-needs-demo/1/docs/ubtrace/needs.json
ubtrace_1   | Found 118 need(s)
ubtrace_1   | Removing existing output directory
ubtrace_1   | Kuzu DB written to /home/useblocks/app/docs/ubtrace/useblocks/sphinx-needs-demo/1/db/needs.kuzu
ubtrace_1   | �� Starting ubTrace on http://mco-sw-fw-docs01:7130
ubtrace_1   | /home/useblocks/app/docs/ubtrace/ubtrace_server.toml true
ubtrace_1   | Server configuration loaded successfully!
ubtrace_1   | Found 6 project folders in /home/useblocks/app/docs/ubtrace/useblocks/showcase/v1/config,/home/useblocks/app/docs/ubtrace/useblocks/showcase/v2/config,/home/useblocks/app/docs/ubtrace/useblocks/showcase/v3/config,/home/useblocks/app/docs/ubtrace/useblocks/showcase/v4/config,/home/useblocks/app/docs/ubtrace/useblocks/sphinx-needs-demo/1/config,/home/useblocks/app/docs/ubtrace/useblocks/ubtrace/1/config
ubtrace_1   | Processing project folder: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v1/config - Parent: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v1
ubtrace_1   | Project parts - Org: useblocks, Project ID: showcase, Version: v1
ubtrace_1   | Processing project folder: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v2/config - Parent: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v2
ubtrace_1   | Project parts - Org: useblocks, Project ID: showcase, Version: v2
ubtrace_1   | Processing project folder: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v3/config - Parent: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v3
ubtrace_1   | Project parts - Org: useblocks, Project ID: showcase, Version: v3
ubtrace_1   | Processing project folder: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v4/config - Parent: /home/useblocks/app/docs/ubtrace/useblocks/showcase/v4
ubtrace_1   | Project parts - Org: useblocks, Project ID: showcase, Version: v4
ubtrace_1   | Processing project folder: /home/useblocks/app/docs/ubtrace/useblocks/sphinx-needs-demo/1/config - Parent: /home/useblocks/app/docs/ubtrace/useblocks/sphinx-needs-demo/1
ubtrace_1   | Project parts - Org: useblocks, Project ID: sphinx-needs-demo, Version: 1
ubtrace_1   | Processing project folder: /home/useblocks/app/docs/ubtrace/useblocks/ubtrace/1/config - Parent: /home/useblocks/app/docs/ubtrace/useblocks/ubtrace/1
ubtrace_1   | Project parts - Org: useblocks, Project ID: ubtrace, Version: 1
ubtrace_1   | Projects: [
ubtrace_1   |   'useblocks:+:showcase:+:v1',
ubtrace_1   |   'useblocks:+:showcase:+:v2',
ubtrace_1   |   'useblocks:+:showcase:+:v3',
ubtrace_1   |   'useblocks:+:showcase:+:v4',
ubtrace_1   |   'useblocks:+:sphinx-needs-demo:+:1',
ubtrace_1   |   'useblocks:+:ubtrace:+:1'
ubtrace_1   | ]
ubtrace_1   | Projects configuration loaded successfully!
ubtrace_1   | Default project set to: org=luminar, project_id=ubtrace_docs, version=1
ubtrace_1   | Listening on http://0.0.0.0:7130

Expected behavior
I would expect files that I put in the mounted directory to

  1. Not be deleted on startup
  2. To be read on startup

Additionally, I would not expect the example projects to load if existing data is present.

Screenshots
N/A

Desktop (please complete the following information):

  • Firefox 144.0.2
  • Ubuntu 20 /w docker (Host), Windows 11 (Browser)
  • ubTrace version: latest

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions