IsADirectoryError occurred when migrating /usr/bin/X11 symlink in stage step

Bug #1824077 reported by 林博仁(Buo-ren Lin)
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Snapcraft
New
Undecided
Unassigned

Bug Description

Bug reproduce instructions
---------------------------
1. git clone --branch=bug-20190410-guvcview https://github.com/Lin-Buo-Ren/snapcraft-bug-poc.git
2. cd snapcraft-bug-poc
3. snapcraft stage guvcview

Traceback
----------
```
Traceback (most recent call last):
  File "/snap/snapcraft/2722/bin/snapcraft", line 11, in <module>
    load_entry_point('snapcraft==3.3', 'console_scripts', 'snapcraft')()
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/cli/__main__.py", line 81, in run
    run_snapcraft(prog_name="snapcraft")
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/cli/lifecycle.py", line 251, in stage
    _execute(steps.STAGE, parts, **kwargs)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/cli/lifecycle.py", line 126, in _execute
    lifecycle.execute(step, project_config, parts)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 94, in execute
    executor.run(step, part_names)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 148, in run
    self._handle_step(part_names, part, step, current_step, cli_config)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 162, in _handle_step
    getattr(self, "_run_{}".format(current_step.name))(part)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 226, in _run_stage
    self._run_step(step=steps.STAGE, part=part, progress="Staging")
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 281, in _run_step
    getattr(part, step.name)()
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 722, in stage
    self._runner.stage()
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 84, in stage
    "override-stage", self._override_stage_scriptlet, self._stagedir
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 137, in _run_scriptlet
    scriptlet_name, function_call.strip()
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 193, in _handle_builtin_function
    function(**function_args)
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 744, in _do_stage
    fixup_func=fixup_func,
  File "/snap/snapcraft/2722/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 1097, in _migrate_files
    os.remove(dst)
IsADirectoryError: [Errno 21] Is a directory: '/root/stage/usr/bin/X11'
```

Snapcraft
----------
Host: version 3.3+git17.g1b29058 from edge channel
Build environment: 3.3

Additional info
---------------
The `usr/bin/X11` symlink is shipped by x11-commons package, and for whatever reason points to `.`

description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.