2015-06-26 12:19:46 |
Simo Punnonen |
bug |
|
|
added bug |
2015-06-26 18:01:21 |
Launchpad Janitor |
multipath-tools (Ubuntu): status |
New |
Confirmed |
|
2015-06-26 19:27:28 |
Jorge Niedbalski |
branch linked |
|
lp:~niedbalski/ubuntu/wily/multipath-tools/fix-lp-1469143 |
|
2015-06-26 19:27:44 |
Chris J Arges |
nominated for series |
|
Ubuntu Precise |
|
2015-06-26 19:27:44 |
Chris J Arges |
bug task added |
|
multipath-tools (Ubuntu Precise) |
|
2015-06-26 19:27:44 |
Chris J Arges |
nominated for series |
|
Ubuntu Vivid |
|
2015-06-26 19:27:44 |
Chris J Arges |
bug task added |
|
multipath-tools (Ubuntu Vivid) |
|
2015-06-26 19:27:44 |
Chris J Arges |
nominated for series |
|
Ubuntu Trusty |
|
2015-06-26 19:27:44 |
Chris J Arges |
bug task added |
|
multipath-tools (Ubuntu Trusty) |
|
2015-06-26 19:27:44 |
Chris J Arges |
nominated for series |
|
Ubuntu Utopic |
|
2015-06-26 19:27:44 |
Chris J Arges |
bug task added |
|
multipath-tools (Ubuntu Utopic) |
|
2015-06-26 19:28:52 |
Jorge Niedbalski |
bug |
|
|
added subscriber Ubuntu Sponsors Team |
2015-06-26 19:29:30 |
Jorge Niedbalski |
multipath-tools (Ubuntu): assignee |
|
Jorge Niedbalski (niedbalski) |
|
2015-06-26 19:29:34 |
Jorge Niedbalski |
multipath-tools (Ubuntu): status |
Confirmed |
In Progress |
|
2015-06-30 10:22:31 |
Risto Kankkunen |
attachment added |
|
Use inode to match loopback mount to backing file https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/1469143/+attachment/4422343/+files/0014-kpartx-long-path.patch |
|
2015-09-16 19:05:30 |
Mathieu Trudel-Lapierre |
removed subscriber Ubuntu Sponsors Team |
|
|
|
2015-09-16 19:05:35 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu): assignee |
Jorge Niedbalski (niedbalski) |
Mathieu Trudel-Lapierre (mathieu-tl) |
|
2015-09-17 00:49:20 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Utopic): status |
New |
Won't Fix |
|
2015-09-18 07:03:02 |
Launchpad Janitor |
multipath-tools (Ubuntu): status |
In Progress |
Fix Released |
|
2015-12-01 14:37:19 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Vivid): status |
New |
In Progress |
|
2015-12-01 14:37:25 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Trusty): status |
New |
In Progress |
|
2015-12-01 14:37:29 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Precise): status |
New |
In Progress |
|
2015-12-01 14:37:32 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Precise): importance |
Undecided |
Medium |
|
2015-12-01 14:37:35 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Trusty): importance |
Undecided |
Medium |
|
2015-12-01 14:37:36 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Vivid): importance |
Undecided |
Medium |
|
2015-12-01 14:37:39 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Precise): assignee |
|
Mathieu Trudel-Lapierre (mathieu-tl) |
|
2015-12-01 14:37:40 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Trusty): assignee |
|
Mathieu Trudel-Lapierre (mathieu-tl) |
|
2015-12-01 14:37:42 |
Mathieu Trudel-Lapierre |
multipath-tools (Ubuntu Vivid): assignee |
|
Mathieu Trudel-Lapierre (mathieu-tl) |
|
2015-12-01 16:49:18 |
Mathieu Trudel-Lapierre |
description |
$ apt-show-versions multipath-tools
multipath-tools:amd64/vivid 0.4.9-3ubuntu12 uptodate
Reproduce:
Mount an image from a path longer than 63 chars succeeds:
$ sudo kpartx -av asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12asdf13/disk.img
add map loop0p1 (252:0): 0 409600 linear /dev/loop0 2048
add map loop0p2 (252:1): 0 2 linear /dev/loop0 411648
add map loop0p5 : 0 819200 linear /dev/loop0 413696
add map loop0p6 : 0 819200 linear /dev/loop0 1234944
add map loop0p7 : 0 819200 linear /dev/loop0 2056192
add map loop0p8 : 0 1316864 linear /dev/loop0 2877440
but dismounting fails:
$ sudo kpartx -dv asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12asdf13/disk.img
strace shows that the parameter on the dismount appears to get cut at 63 chars:
ioctl(3, DM_LIST_VERSIONS, 0x15b89b0) = 0
stat("asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12asdf13/disk.img", {st_mode=S_IFREG|0644, st_size=2147483648, ...}) = 0
stat("/dev/loop0", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 0), ...}) = 0
open("/dev/loop0", O_RDONLY) = 4
ioctl(4, LOOP_GET_STATUS, {number=0, offset=0, flags=0, name="asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12a", ...}) = 0
close(4) = 0
stat("/dev/loop1", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 1), ...}) = 0
open("/dev/loop1", O_RDONLY) = 4
ioctl(4, LOOP_GET_STATUS, {number=0, offset=0, flags=0, name="asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12a", ...}) = -1 ENXIO (No such device or address)
if the path is 63 chars or less, the dismount also succeeds.
This is quickly becomes an issue if you want to use full disk paths in your shell scripts. |
[Impact]
Users of kpartx to load disk images, possibly multiple images with the same file name (but in different paths).
[Test case]
See below, also see https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/1469143/comments/3
[Regression potential]
This changes makes the matching for loaded images more robust, and so has a very limited risk of regression. Since there is a call to stat() introduced, one may notice a slowdown if the stat() call blocks for a reason, and the operation will fail if the stat() call fails for any reason, since the device and inode are now required.
---
$ apt-show-versions multipath-tools
multipath-tools:amd64/vivid 0.4.9-3ubuntu12 uptodate
Reproduce:
Mount an image from a path longer than 63 chars succeeds:
$ sudo kpartx -av asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12asdf13/disk.img
add map loop0p1 (252:0): 0 409600 linear /dev/loop0 2048
add map loop0p2 (252:1): 0 2 linear /dev/loop0 411648
add map loop0p5 : 0 819200 linear /dev/loop0 413696
add map loop0p6 : 0 819200 linear /dev/loop0 1234944
add map loop0p7 : 0 819200 linear /dev/loop0 2056192
add map loop0p8 : 0 1316864 linear /dev/loop0 2877440
but dismounting fails:
$ sudo kpartx -dv asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12asdf13/disk.img
strace shows that the parameter on the dismount appears to get cut at 63 chars:
ioctl(3, DM_LIST_VERSIONS, 0x15b89b0) = 0
stat("asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12asdf13/disk.img", {st_mode=S_IFREG|0644, st_size=2147483648, ...}) = 0
stat("/dev/loop0", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 0), ...}) = 0
open("/dev/loop0", O_RDONLY) = 4
ioctl(4, LOOP_GET_STATUS, {number=0, offset=0, flags=0, name="asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12a", ...}) = 0
close(4) = 0
stat("/dev/loop1", {st_mode=S_IFBLK|0660, st_rdev=makedev(7, 1), ...}) = 0
open("/dev/loop1", O_RDONLY) = 4
ioctl(4, LOOP_GET_STATUS, {number=0, offset=0, flags=0, name="asfd1asdf2asdf3asdf4asdf5asdf6asfd7asdf8asdf9asf10asdf11asdf12a", ...}) = -1 ENXIO (No such device or address)
if the path is 63 chars or less, the dismount also succeeds.
This is quickly becomes an issue if you want to use full disk paths in your shell scripts. |
|
2015-12-01 16:49:35 |
Mathieu Trudel-Lapierre |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2015-12-03 20:22:50 |
Brian Murray |
multipath-tools (Ubuntu Vivid): status |
In Progress |
Fix Committed |
|
2015-12-03 20:22:53 |
Brian Murray |
bug |
|
|
added subscriber SRU Verification |
2015-12-03 20:23:01 |
Brian Murray |
tags |
kpartx |
kpartx verification-needed |
|
2016-03-04 20:31:10 |
Ubuntu Foundations Team Bug Bot |
tags |
kpartx verification-needed |
kpartx removal-candidate verification-needed |
|
2016-05-12 13:50:16 |
Martin Pitt |
multipath-tools (Ubuntu Vivid): status |
Fix Committed |
Won't Fix |
|
2016-05-12 13:50:20 |
Martin Pitt |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|
2016-05-12 13:50:21 |
Martin Pitt |
removed subscriber SRU Verification |
|
|
|
2016-05-12 13:50:21 |
Martin Pitt |
tags |
kpartx removal-candidate verification-needed |
kpartx removal-candidate |
|
2016-05-13 06:50:15 |
Simo Punnonen |
tags |
kpartx removal-candidate |
kpartx removal-candidate verification-done |
|
2021-10-14 01:27:11 |
Steve Langasek |
multipath-tools (Ubuntu Precise): status |
In Progress |
Won't Fix |
|