2018-04-11 16:33:48 |
Eric Desrochers |
bug |
|
|
added bug |
2018-04-11 16:41:57 |
Eric Desrochers |
tags |
|
sts |
|
2018-04-11 16:55:16 |
Eric Desrochers |
description |
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) Remove apparmor
3) Installed selinux
4) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation.
The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
* git describe --contains dda4129
v3.1.11~29
* rmadison xfsprogs
xfsprogs | 3.1.9ubuntu2 | trusty
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-11 16:55:37 |
Eric Desrochers |
description |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) Remove apparmor
3) Installed selinux
4) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation.
The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
* git describe --contains dda4129
v3.1.11~29
* rmadison xfsprogs
xfsprogs | 3.1.9ubuntu2 | trusty
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) Remove apparmor
3) Installed selinux
4) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
* git describe --contains dda4129
v3.1.11~29
* rmadison xfsprogs
xfsprogs | 3.1.9ubuntu2 | trusty
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-11 16:55:45 |
Eric Desrochers |
nominated for series |
|
Ubuntu Trusty |
|
2018-04-11 16:55:45 |
Eric Desrochers |
bug task added |
|
xfsprogs (Ubuntu Trusty) |
|
2018-04-11 16:55:50 |
Eric Desrochers |
xfsprogs (Ubuntu): status |
New |
Fix Released |
|
2018-04-11 16:58:51 |
Eric Desrochers |
description |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) Remove apparmor
3) Installed selinux
4) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
* git describe --contains dda4129
v3.1.11~29
* rmadison xfsprogs
xfsprogs | 3.1.9ubuntu2 | trusty
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
* git describe --contains dda4129
v3.1.11~29
* rmadison xfsprogs
xfsprogs | 3.1.9ubuntu2 | trusty
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-11 17:18:47 |
Eric Desrochers |
description |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
* git describe --contains dda4129
v3.1.11~29
* rmadison xfsprogs
xfsprogs | 3.1.9ubuntu2 | trusty
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-11 18:04:07 |
Eric Desrochers |
description |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log.
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields".
(Example took from the coredump in gdb "ilf_fields = 133")
It cannot match any case statement flags, and has no choice but to use default: (when none of the cases are true) and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-11 18:09:51 |
Eric Desrochers |
description |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log.
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields".
(Example took from the coredump in gdb "ilf_fields = 133")
It cannot match any case statement flags, and has no choice but to use default: (when none of the cases are true) and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields", it's value become out of range. (Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-11 18:34:25 |
Eric Desrochers |
description |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields", it's value become out of range. (Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-11 18:37:32 |
Eric Desrochers |
description |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-11 18:37:39 |
Eric Desrochers |
description |
### DRAFT ####
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-11 19:18:39 |
Eric Desrochers |
xfsprogs (Ubuntu Trusty): status |
New |
In Progress |
|
2018-04-11 19:18:44 |
Eric Desrochers |
xfsprogs (Ubuntu Trusty): assignee |
|
Eric Desrochers (slashd) |
|
2018-04-11 20:40:27 |
Eric Desrochers |
description |
[Impact]
* Under certains condition (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013). It never land in Trusty because the package it has was a copy from it's predecessor release, saucy.
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
[Impact]
* Under certain conditions (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
when more than one flag is set on f->ilf_fields.
[Explanation]
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013).
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* The patch never land in Trusty because the package was a copy from it's predecessor release, saucy, and never been SRU since then.
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-13 16:09:07 |
Eric Desrochers |
description |
[Impact]
* Under certain conditions (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
when more than one flag is set on f->ilf_fields.
[Explanation]
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor
4) Reboot
5) Installed selinux
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013).
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* The patch never land in Trusty because the package was a copy from it's predecessor release, saucy, and never been SRU since then.
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
[Impact]
* Under certain conditions (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
when more than one flag is set on f->ilf_fields.
[Explanation]
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor # To avoid potential conflict with selinux.
4) Reboot
5) Installed selinux # so that data+attr is set, and logprinting.
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013).
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* The patch never land in Trusty because the package was a copy from it's predecessor release, saucy, and never been SRU since then.
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-18 11:59:26 |
Eric Desrochers |
xfsprogs (Ubuntu Trusty): importance |
Undecided |
Medium |
|
2018-04-18 12:05:16 |
Eric Desrochers |
attachment added |
|
lp1763086_xfsprogs_trusty.debdiff https://bugs.launchpad.net/ubuntu/+source/xfsprogs/+bug/1763086/+attachment/5120939/+files/lp1763086_xfsprogs_trusty.debdiff |
|
2018-04-18 12:08:17 |
Eric Desrochers |
bug |
|
|
added subscriber STS Sponsors |
2018-04-18 12:10:29 |
Eric Desrochers |
description |
[Impact]
* Under certain conditions (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
sing host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
when more than one flag is set on f->ilf_fields.
[Explanation]
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor # To avoid potential conflict with selinux.
4) Reboot
5) Installed selinux # so that data+attr is set, and logprinting.
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is probably other ways but that is the one I used based on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013).
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* The patch never land in Trusty because the package was a copy from it's predecessor release, saucy, and never been SRU since then.
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
[Impact]
* Under certain conditions (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
when more than one flag is set on f->ilf_fields. (Example : When data+attr are set)
[Explanation]
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor # To avoid potential conflict with selinux.
4) Reboot
5) Installed selinux # so that data+attr is set, and logprinting.
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is for sure other ways to trigger this behavior but that is the one I used base on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013).
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* The patch never land in Trusty because the package was a copy from it's predecessor release, saucy, and never been SRU since then.
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-18 12:45:37 |
Eric Desrochers |
description |
[Impact]
* Under certain conditions (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
when more than one flag is set on f->ilf_fields. (Example : When data+attr are set)
[Explanation]
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor # To avoid potential conflict with selinux.
4) Reboot
5) Installed selinux # so that data+attr is set, and logprinting.
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is for sure other ways to trigger this behavior but that is the one I used base on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013).
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
[Other Info]
* The patch never land in Trusty because the package was a copy from it's predecessor release, saucy, and never been SRU since then.
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
[Impact]
* Under certain conditions (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
when more than one flag is set on f->ilf_fields. (Example : When data+attr are set)
[Explanation]
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor # To avoid potential conflict with selinux.
4) Reboot
5) Installed selinux # so that data+attr is set, and logprinting.
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is for sure other ways to trigger this behavior but that is the one I used base on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013) and has been first introduce in Ubuntu with Xenial. No complain has been made for this particular function since then AFAIK.
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
The uploaded package has also been tested as a test package by multiple users (pre-SRU) and everyone confirmed it was working with no more error and crashes.
[Other Info]
* The patch never land in Trusty because the package was a copy from it's predecessor release, saucy, and never been SRU since then.
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-18 12:46:33 |
Eric Desrochers |
description |
[Impact]
* Under certain conditions (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
when more than one flag is set on f->ilf_fields. (Example : When data+attr are set)
[Explanation]
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor # To avoid potential conflict with selinux.
4) Reboot
5) Installed selinux # so that data+attr is set, and logprinting.
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is for sure other ways to trigger this behavior but that is the one I used base on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013) and has been first introduce in Ubuntu with Xenial. No complain has been made for this particular function since then AFAIK.
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
The uploaded package has also been tested as a test package by multiple users (pre-SRU) and everyone confirmed it was working with no more error and crashes.
[Other Info]
* The patch never land in Trusty because the package was a copy from it's predecessor release, saucy, and never been SRU since then.
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
[Impact]
* Under certain conditions (such as when selinux is enabled and probably other ways) xfsprogs on Trusty may report a error "illegal inode type" and SIGABRT, generating a coredump as follow :
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `xfs_logprint -c /dev/mapper/image-glance'.
Program terminated with signal SIGABRT, Aborted.
when more than one flag is set on f->ilf_fields. (Example : When data+attr are set)
[Explanation]
As we speak, the switch() statement is doing a Binary AND between ifl_fields & XFS_ILOG_NONCORE.
switch (f->ilf_fields & XFS_ILOG_NONCORE) {
XFS_ILOG_NONCORE being the sum of a Binary OR for all the Inode changes to log:
#define XFS_ILOG_NONCORE (XFS_ILOG_DDATA | XFS_ILOG_DEXT | \
XFS_ILOG_DBROOT | XFS_ILOG_DEV | \
XFS_ILOG_UUID | XFS_ILOG_ADATA | \
XFS_ILOG_AEXT | XFS_ILOG_ABROOT)
When more than 1 flag is set in "ifl_fields"
(Example took from the coredump in gdb "ilf_fields = 133")
----------------------------------
#define XFS_ILOG_DDATA 0x002 /* log i_df.if_data */
#define XFS_ILOG_DEXT 0x004 /* log i_df.if_extents */
#define XFS_ILOG_DBROOT 0x008 /* log i_df.i_broot */
#define XFS_ILOG_DEV 0x010 /* log the dev field */
#define XFS_ILOG_UUID 0x020 /* log the uuid field */
#define XFS_ILOG_ADATA 0x040 /* log i_af.if_data */
#define XFS_ILOG_AEXT 0x080 /* log i_af.if_extents */
#define XFS_ILOG_ABROOT 0x100 /* log i_af.i_broot */
ifl_field = 133 & XFS_ILOG_NONCORE= 510 = 132
----------------------------------
and cannot match any case statement based on the inode flags value above and has no choice but to use default: statement because none of them are true and call xlog_panic().
[Test Case]
1) Create a XFS device (dev/vdb1)
2) apt-get dist-upgrade
3) Remove apparmor # To avoid potential conflict with selinux.
4) Reboot
5) Installed selinux # so that data+attr is set, and logprinting.
6) Reboot
7) Run xfs_logprint against /dev/vdb1
- sudo xfs_logprint -c /dev/vdb1
There is for sure other ways to trigger this behavior but that is the one I used base on the git commit log:
"I've tested this by a simple test such as creating one
file on an selinux box, so that data+attr is set, and
logprinting"
[Regression Potential]
* This is a rework of "xlog_print_trans_inode()" to handle more than one flag on f->ilf_fields if set in order to stop going in error and abort when facing the situation. The change has been there for a while now (Jan 2013) and has been first introduce in Ubuntu with Xenial. No complain has been made for this particular function since then AFAIK.
The rework offer a better detection instead of a one size fits all, and provide various switch() statement context and appropriate actions.
It is also capable to handle multiply-logged inode fields which current Trusty version can't handle.
The uploaded package has also been tested as a test package by some affected users (pre-SRU) and everyone confirmed it was working with no more error and crashes.
[Other Info]
* The patch never land in Trusty because the package was a copy from it's predecessor release, saucy, and never been SRU since then.
* Upstream commit:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=dda4129
* Trusty AFFECTED ONLY.
$ git describe --contains dda4129
v3.1.11~29
$ rmadison xfsprogs
==> xfsprogs | 3.1.9ubuntu2 | trusty <==
xfsprogs | 4.3.0+nmu1ubuntu1 | xenial
xfsprogs | 4.3.0+nmu1ubuntu1.1 | xenial-updates
xfsprogs | 4.9.0+nmu1ubuntu1 | artful
xfsprogs | 4.9.0+nmu1ubuntu1 | bionic
[Orig Description]
It has been brought to my attention that the following :
"
The command 'xfs_logprint -c <DEVICE>' coredump on Trusty and display the error :
xlog_print_trans_inode: illegal inode type
" |
|
2018-04-18 14:41:39 |
Eric Desrochers |
removed subscriber STS Sponsors |
|
|
|
2018-04-19 16:57:49 |
Łukasz Zemczak |
xfsprogs (Ubuntu Trusty): status |
In Progress |
Fix Committed |
|
2018-04-19 16:57:51 |
Łukasz Zemczak |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2018-04-19 16:57:53 |
Łukasz Zemczak |
bug |
|
|
added subscriber SRU Verification |
2018-04-19 16:57:56 |
Łukasz Zemczak |
tags |
sts |
sts verification-needed verification-needed-trusty |
|
2018-04-30 18:44:41 |
Eric Desrochers |
tags |
sts verification-needed verification-needed-trusty |
sts verification-done-trusty verification-needed |
|
2018-04-30 18:47:07 |
Eric Desrochers |
tags |
sts verification-done-trusty verification-needed |
sts verification-done verification-done-trusty |
|
2018-05-03 15:38:45 |
Launchpad Janitor |
xfsprogs (Ubuntu Trusty): status |
Fix Committed |
Fix Released |
|
2018-05-03 15:38:49 |
Brian Murray |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|