jina-ai / dashboard

Interactive UI for analyzing Jina logs, designing Flows and viewing Hub images
https://dashboard.jina.ai
Apache License 2.0
118 stars 60 forks source link

Error when deleting Workspace #302

Closed aga11313 closed 3 years ago

aga11313 commented 3 years ago

Describe the bug

After adding multiple new Workspaces, I attempted to delete a workspace and the Flow canvas failed to render.

Have you solved it? If so, let us know how!


Environment

console-dev.jina.ai

Screenshots and logs

image console-dev.jina.ai-1618922714917.log

{ "u0IB3S4cfk0Jft2ww2kJa": { "jina_version": "1", "flowArguments": { "version": "0.0", "flow": [], "pea": [], "pod": [] }, "selectedFlowId": "rfK2P2W6dbqXVylb2olfn", "name": "Workspace 2", "type": "user-generated", "daemon_endpoint": "", "isConnected": false, "daemon_id": null, "files": [] }, "kKST2gxoGn3cmDbOljBKd": { "jina_version": "1", "flowArguments": { "version": "0.0", "flow": [], "pea": [], "pod": [] }, "selectedFlowId": "eJdaPkfJPBiyx4LoxtqSM", "name": "Workspace 3", "type": "user-generated", "daemon_endpoint": "", "isConnected": false, "daemon_id": null, "files": [] }, "KarPAaHlSjXD3WtrQ6C5H": { "jina_version": "1", "flowArguments": { "version": "0.0", "flow": [], "pea": [], "pod": [] }, "selectedFlowId": "JskFv-SUiC0MP2H6qrTTm", "name": "Workspace 4", "type": "user-generated", "daemon_endpoint": "", "isConnected": false, "daemon_id": null, "files": [] } }

{ "example_flow_pokedex": { "workspaceId": "example_workspace_pokedex", "name": "Pokedex Query", "yaml": "!Flow\n with:\n read_only: true\n rest_api: true\n port_expose: $JINA_PORT\n board:\n canvas:\n gateway:\n x: 250\n y: 150\n chunk_seg:\n x: 250\n y: 268\n tf_encode:\n x: 250\n y: 420\n chunk_idx:\n x: 250\n y: 600\n ranker:\n x: 250\n y: 836\n doc_idx:\n x: 249\n y: 985\n pods:\n gateway: {}\n chunk_seg:\n uses: pods/craft.yml\n parallel: $PARALLEL\n needs: gateway\n tf_encode:\n uses: pods/encode.yml\n parallel: $PARALLEL\n timeout_ready: 600000\n needs: chunk_seg\n chunk_idx:\n uses: pods/chunk.yml\n separated_workspace: true\n polling: all\n uses_reducing: _merge_all\n timeout_ready: 100000\n needs: tf_encode\n ranker:\n uses: BiMatchRanker\n needs: chunk_idx\n doc_idx:\n uses: pods/doc.yml\n needs: ranker\n \n ", "type": "user-generated", "isConnected": false, "flowChart": { "with": { "read_only": true, "rest_api": true, "port_expose": "$JINA_PORT", "board": { "canvas": { "gateway": { "x": 250, "y": 150 }, "chunk_seg": { "x": 250, "y": 268 }, "tf_encode": { "x": 250, "y": 420 }, "chunk_idx": { "x": 250, "y": 600 }, "ranker": { "x": 250, "y": 836 }, "doc_idx": { "x": 249, "y": 985 } } } }, "elements": [ { "id": "gateway", "type": "gateway", "data": { "label": "gateway", "name": "gateway", "depth": 0 }, "position": { "x": 250, "y": 150 } }, { "id": "chunk_seg", "type": "pod", "data": { "uses": "pods/craft.yml", "parallel": "$PARALLEL", "needs": [ "gateway" ], "label": "chunk_seg", "name": "chunk_seg", "depth": 1 }, "position": { "x": 250, "y": 268 } }, { "id": "tf_encode", "type": "pod", "data": { "uses": "pods/encode.yml", "parallel": "$PARALLEL", "timeout_ready": 600000, "needs": [ "chunk_seg" ], "label": "tf_encode", "name": "tf_encode", "depth": 2 }, "position": { "x": 250, "y": 420 } }, { "id": "chunk_idx", "type": "pod", "data": { "uses": "pods/chunk.yml", "separated_workspace": true, "polling": "all", "uses_reducing": "_merge_all", "timeout_ready": 100000, "needs": [ "tf_encode" ], "label": "chunk_idx", "name": "chunk_idx", "depth": 3 }, "position": { "x": 250, "y": 600 } }, { "id": "ranker", "type": "pod", "data": { "uses": "BiMatchRanker", "needs": [ "chunk_idx" ], "label": "ranker", "name": "ranker", "depth": 4 }, "position": { "x": 250, "y": 836 } }, { "id": "doc_idx", "type": "pod", "data": { "uses": "pods/doc.yml", "needs": [ "ranker" ], "label": "doc_idx", "name": "doc_idx", "depth": 5 }, "position": { "x": 249, "y": 985 } }, { "id": "e-gateway-to-chunk_seg", "source": "gateway", "target": "chunk_seg", "type": "step" }, { "id": "e-chunk_seg-to-tf_encode", "source": "chunk_seg", "target": "tf_encode", "type": "step" }, { "id": "e-tf_encode-to-chunk_idx", "source": "tf_encode", "target": "chunk_idx", "type": "step" }, { "id": "e-chunk_idx-to-ranker", "source": "chunk_idx", "target": "ranker", "type": "step" }, { "id": "e-ranker-to-doc_idx", "source": "ranker", "target": "doc_idx", "type": "step" } ] } }, "example_flow_flower": { "workspaceId": "example_workspace_flower", "name": "Flower Query", "yaml": "!Flow\n with:\n read_only: true\n port_expose: $JINA_PORT\n board:\n canvas:\n gateway:\n x: 250\n y: 150\n loader:\n x: 250\n y: 257\n flipper:\n x: 252\n y: 407\n normalizer:\n x: 239\n y: 563\n encoder:\n x: 252\n y: 712\n chunk_indexer:\n x: 250\n y: 872\n ranker:\n x: 252\n y: 1066\n doc_indexer:\n x: 253\n y: 1199\n pods:\n gateway: {}\n loader:\n uses: yaml/craft-load.yml\n read_only: true\n needs: gateway\n flipper:\n uses: yaml/craft-flip.yml\n read_only: true\n needs: loader\n normalizer:\n uses: yaml/craft-normalize.yml\n read_only: true\n needs: flipper\n encoder:\n uses: $ENCODER\n timeout_ready: 600000\n read_only: true\n needs: normalizer\n chunk_indexer:\n uses: yaml/index-chunk.yml\n separated_workspace: true\n polling: all\n uses_reducing: _merge_all\n needs: encoder\n ranker:\n uses: MinRanker\n needs: chunk_indexer\n doc_indexer:\n uses: yaml/index-doc.yml\n needs: ranker \n ", "type": "user-generated", "isConnected": false, "flowChart": { "with": { "read_only": true, "port_expose": "$JINA_PORT", "board": { "canvas": { "gateway": { "x": 250, "y": 150 }, "loader": { "x": 250, "y": 257 }, "flipper": { "x": 252, "y": 407 }, "normalizer": { "x": 239, "y": 563 }, "encoder": { "x": 252, "y": 712 }, "chunk_indexer": { "x": 250, "y": 872 }, "ranker": { "x": 252, "y": 1066 }, "doc_indexer": { "x": 253, "y": 1199 } } } }, "elements": [ { "id": "gateway", "type": "gateway", "data": { "label": "gateway", "name": "gateway", "depth": 0 }, "position": { "x": 250, "y": 150 } }, { "id": "loader", "type": "pod", "data": { "uses": "yaml/craft-load.yml", "read_only": true, "needs": [ "gateway" ], "label": "loader", "name": "loader", "depth": 1 }, "position": { "x": 250, "y": 257 } }, { "id": "flipper", "type": "pod", "data": { "uses": "yaml/craft-flip.yml", "read_only": true, "needs": [ "loader" ], "label": "flipper", "name": "flipper", "depth": 2 }, "position": { "x": 252, "y": 407 } }, { "id": "normalizer", "type": "pod", "data": { "uses": "yaml/craft-normalize.yml", "read_only": true, "needs": [ "flipper" ], "label": "normalizer", "name": "normalizer", "depth": 3 }, "position": { "x": 239, "y": 563 } }, { "id": "encoder", "type": "pod", "data": { "uses": "$ENCODER", "timeout_ready": 600000, "read_only": true, "needs": [ "normalizer" ], "label": "encoder", "name": "encoder", "depth": 4 }, "position": { "x": 252, "y": 712 } }, { "id": "chunk_indexer", "type": "pod", "data": { "uses": "yaml/index-chunk.yml", "separated_workspace": true, "polling": "all", "uses_reducing": "_merge_all", "needs": [ "encoder" ], "label": "chunk_indexer", "name": "chunk_indexer", "depth": 5 }, "position": { "x": 250, "y": 872 } }, { "id": "ranker", "type": "pod", "data": { "uses": "MinRanker", "needs": [ "chunk_indexer" ], "label": "ranker", "name": "ranker", "depth": 6 }, "position": { "x": 252, "y": 1066 } }, { "id": "doc_indexer", "type": "pod", "data": { "uses": "yaml/index-doc.yml", "needs": [ "ranker" ], "label": "doc_indexer", "name": "doc_indexer", "depth": 7 }, "position": { "x": 253, "y": 1199 } }, { "id": "e-gateway-to-loader", "source": "gateway", "target": "loader", "type": "step" }, { "id": "e-loader-to-flipper", "source": "loader", "target": "flipper", "type": "step" }, { "id": "e-flipper-to-normalizer", "source": "flipper", "target": "normalizer", "type": "step" }, { "id": "e-normalizer-to-encoder", "source": "normalizer", "target": "encoder", "type": "step" }, { "id": "e-encoder-to-chunk_indexer", "source": "encoder", "target": "chunk_indexer", "type": "step" }, { "id": "e-chunk_indexer-to-ranker", "source": "chunk_indexer", "target": "ranker", "type": "step" }, { "id": "e-ranker-to-doc_indexer", "source": "ranker", "target": "doc_indexer", "type": "step" } ] } }, "example_flow_southpark": { "workspaceId": "example_workspace_southpark", "name": "Southpark Query", "yaml": "!Flow\nwith:\n read_only: true\n port_expose: $JINA_PORT\n board:\n canvas:\n gateway:\n x: 254\n y: 147\n splittor:\n x: 254\n y: 270\n encoder:\n x: 254\n y: 448\n chunk_indexer:\n x: 251\n y: 645\n ranker:\n x: 255\n y: 862\n doc_indexer:\n x: 256\n y: 1002\npods:\n gateway: {}\n splittor:\n uses: pods/craft-split.yml\n parallel: $PARALLEL\n read_only: true\n needs: gateway\n encoder:\n uses: pods/encode.yml\n parallel: $PARALLEL\n timeout_ready: 60000\n read_only: true\n needs: splittor\n chunk_indexer:\n uses: pods/index-chunk.yml\n separated_workspace: true\n polling: all\n reducing_uses: _merge_all\n needs: encoder\n ranker:\n uses: MinRanker\n needs: chunk_indexer\n doc_indexer:\n uses: pods/index-doc.yml\n needs: ranker\n", "type": "user-generated", "isConnected": false, "flowChart": { "with": { "read_only": true, "port_expose": "$JINA_PORT", "board": { "canvas": { "gateway": { "x": 254, "y": 147 }, "splittor": { "x": 254, "y": 270 }, "encoder": { "x": 254, "y": 448 }, "chunk_indexer": { "x": 251, "y": 645 }, "ranker": { "x": 255, "y": 862 }, "doc_indexer": { "x": 256, "y": 1002 } } } }, "elements": [ { "id": "gateway", "type": "gateway", "data": { "label": "gateway", "name": "gateway", "depth": 0 }, "position": { "x": 254, "y": 147 } }, { "id": "splittor", "type": "pod", "data": { "uses": "pods/craft-split.yml", "parallel": "$PARALLEL", "read_only": true, "needs": [ "gateway" ], "label": "splittor", "name": "splittor", "depth": 1 }, "position": { "x": 254, "y": 270 } }, { "id": "encoder", "type": "pod", "data": { "uses": "pods/encode.yml", "parallel": "$PARALLEL", "timeout_ready": 60000, "read_only": true, "needs": [ "splittor" ], "label": "encoder", "name": "encoder", "depth": 2 }, "position": { "x": 254, "y": 448 } }, { "id": "chunk_indexer", "type": "pod", "data": { "uses": "pods/index-chunk.yml", "separated_workspace": true, "polling": "all", "reducing_uses": "_merge_all", "needs": [ "encoder" ], "label": "chunk_indexer", "name": "chunk_indexer", "depth": 3 }, "position": { "x": 251, "y": 645 } }, { "id": "ranker", "type": "pod", "data": { "uses": "MinRanker", "needs": [ "chunk_indexer" ], "label": "ranker", "name": "ranker", "depth": 4 }, "position": { "x": 255, "y": 862 } }, { "id": "doc_indexer", "type": "pod", "data": { "uses": "pods/index-doc.yml", "needs": [ "ranker" ], "label": "doc_indexer", "name": "doc_indexer", "depth": 5 }, "position": { "x": 256, "y": 1002 } }, { "id": "e-gateway-to-splittor", "source": "gateway", "target": "splittor", "type": "step" }, { "id": "e-splittor-to-encoder", "source": "splittor", "target": "encoder", "type": "step" }, { "id": "e-encoder-to-chunk_indexer", "source": "encoder", "target": "chunk_indexer", "type": "step" }, { "id": "e-chunk_indexer-to-ranker", "source": "chunk_indexer", "target": "ranker", "type": "step" }, { "id": "e-ranker-to-doc_indexer", "source": "ranker", "target": "doc_indexer", "type": "step" } ] } }, "blankFlow": { "name": "Test Flow", "workspaceId": "example_workspace_test", "yaml": "!Flow\n with:\n rest_api: true\n port_expose: 5555\n pods:\n pod1:\n read_only: true\n pod2:\n read_only: true\n pod3:\n read_only: true", "type": "user-generated", "isConnected": false, "flowChart": { "with": { "rest_api": true, "port_expose": 5555 }, "elements": [ { "id": "gateway", "type": "gateway", "data": { "label": "gateway", "name": "gateway", "depth": 0 }, "position": { "y": 150, "x": 250 } }, { "id": "pod1", "type": "pod", "data": { "read_only": true, "label": "pod1", "name": "pod1", "needs": [ "gateway" ], "depth": 1 }, "position": { "y": 300, "x": 250 } }, { "id": "pod2", "type": "pod", "data": { "read_only": true, "label": "pod2", "name": "pod2", "needs": [ "pod1" ], "depth": 2 }, "position": { "y": 450, "x": 250 } }, { "id": "pod3", "type": "pod", "data": { "read_only": true, "label": "pod3", "name": "pod3", "needs": [ "pod2" ], "depth": 3 }, "position": { "y": 600, "x": 250 } }, { "id": "e-gateway-to-pod1", "source": "gateway", "target": "pod1", "type": "step" }, { "id": "e-pod1-to-pod2", "source": "pod1", "target": "pod2", "type": "step" }, { "id": "e-pod2-to-pod3", "source": "pod2", "target": "pod3", "type": "step" } ] } }, "_userFlow": { "name": "Custom Flow 1", "type": "user-generated", "flowChart": { "elements": [ { "id": "gateway", "type": "gateway", "data": { "name": "gateway", "label": "gateway" }, "position": { "x": 629, "y": 72 } } ] } } }