Skip to content

Unable to use "mount all" when a container exists with a $ sign in the name (like "$web") #1630

Closed
@angrygreenfrogs

Description

@angrygreenfrogs

We have a storage account that has a container named "$web" within it.

I believe this is very simply an issue where something is probably catching "$web" and interpreting it as a variable rather than being properly escaped.

Configuration

vi /etc/blobfuse2/config.yaml
#
# Refer ./setup/baseConfig.yaml for full set of config parameters
logging:
  type: syslog
  level: log_debug

components:
  - libfuse
  - file_cache
  - attr_cache
  - azstorage

libfuse:
  attribute-expiration-sec: 120
  entry-expiration-sec: 120
  negative-entry-expiration-sec: 240

file_cache:
  path: /mnt/blobfuse2tmp
  timeout-sec: 120
  max-size-mb: 4096

attr_cache:
  timeout-sec: 7200

azstorage:
  type: block
  account-name: MYACCOUNT
  sas: MYSAS
  mode: sas
#  

Test commands

mkdir ./test
blobfuse2 mount all ./test --read-only=true --config-file=/etc/blobfuse2/config.yaml

Result

Mounting container : $web to path  test/$web
Failed to mount container $web : Error: invalid config file [open /root/.blobfuse2/config_.yaml: no such file or directory]

If you look in /root/.blobfuse2, you'll see these files:

total 20
drwxr-xr-x  2 root root 4096 Feb 13 01:47  ./
drwx------ 18 root root 4096 Feb 13 01:44  ../
-rw-r--r--  1 root root    4 Feb 13 01:47  _home_admin_k_inventory.pid
-rw-r--r--  1 root root  654 Feb 13 01:47 'config_$web.yaml'
-rw-r--r--  1 root root  669 Feb 13 01:47  config_inventory.yaml

The other container "inventory" mounts successfully.

As you can see above, blobfuse2 is complaining about "/root/.blobfuse2/config_.yaml" not existing, but there is a file called 'config_$web.yaml', so I bet $web is not being escaped in some internal command and results in a blank value being used.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions