Activity log for bug #1763086

Date Who What changed Old value New value Message
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