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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions