LUKS filesystem corruption

I have been using Fedora on my ThinkPad p14s over two years without any major issues. However after an update of my F40 system about two weeks back, my btrfs in LUKS started to mount read-only with corruption errors. My system was a mess anyway and with several recent unsafe shutdowns, I decided to reinstall my OS.

I installed F41 i3 spin. This time, I have decided to try LUKS + LVM + ext4 partition scheme (I kept the original LUKS partition). However, after a first reboot after ~8hours of work root partition showed an error during boot (manual e2fsck was needed). After fixing the FS, the system booted, but the same error showed up after the next reboot.

SMART and memtest86+ as well as Lenovo built-in diagnostics show no issues. I have tried to run badblocks -sn in different scenarios with different results.

  • F40 live usb - no bad blocks detected,
  • F41 live usb run over LUKS partition (/dev/nvme0n1p2) - no bad blocks detected,
  • F41 live usb run over /dev/luks-XXX or /dev/mapper/fedora-root - a lot of bad blocks with different blocks being detected each time the test is run.
  • When I put the SSD to my desktop running F41, no bad blocks were detected as well.
  • Boot partition outside of LUKS is fine.

I could not find any relevant errors in dmesg or journalctl.

I have genuinely no idea what to try next. I would be very grateful if somebody could point me where to search next. Thanks!

Some basic system info follows - the system won’t boot currently, so I this is the info info from the live usb that manifests the same issues.

System info
$ uname -a
Linux localhost-live 6.13.0-0.rc7.20250114gitc45323b7560e.56.fc42.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jan 14 16:33:15 UTC 2025 x86_64 GNU/Linux
$ lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne Root Complex
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.5 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.6 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:02.7 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 51)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 3
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 5
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 6
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 7
01:00.0 Non-Volatile memory controller: SK hynix Gold P31/BC711/PC711 NVMe Solid State Drive
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 0e)
03:00.0 Network controller: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter
04:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)
05:00.0 Unassigned class [ff00]: Quectel Wireless Solutions Co., Ltd. EM120R-GL LTE Modem
06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 15)
07:00.0 USB controller: Renesas Electronics Corp. uPD720202 USB 3.0 Host Controller (rev 02)
08:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev d1)
08:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Renoir Radeon High Definition Audio Controller
08:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor
08:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
08:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
08:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] ACP/ACP3X/ACP6x Audio Coprocessor (rev 01)
08:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h/1ah HD Audio Controller
$ sudo smartctl -x /dev/nvme0
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.13.0-0.rc7.20250114gitc45323b7560e.56.fc42.x86_64] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       SKHynix_HFS001TDE9X081N
Firmware Version:                   41730C20
PCI Vendor/Subsystem ID:            0x1c5c
IEEE OUI Identifier:                0xace42e
Controller ID:                      1
NVMe Version:                       1.3
Number of Namespaces:               1
Namespace 1 Size/Capacity:          1,024,209,543,168 [1.02 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            ace42e 00253d1f7f
Local Time is:                      Thu Jan 30 10:16:23 2025 EST
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x005f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Timestmp
Log Page Attributes (0x1e):         Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg Pers_Ev_Lg
Maximum Data Transfer Size:         64 Pages
Warning  Comp. Temp. Threshold:     83 Celsius
Critical Comp. Temp. Threshold:     84 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +   6.3000W       -        -    0  0  0  0        5       5
 1 +   2.4000W       -        -    1  1  1  1       30      30
 2 +   1.9000W       -        -    2  2  2  2      100     100
 3 -   0.0500W       -        -    3  3  3  3     1000    1000
 4 -   0.0040W       -        -    3  3  3  3     1000    9000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        57 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    62,109,963 [31.8 TB]
Data Units Written:                 49,139,217 [25.1 TB]
Host Read Commands:                 988,221,023
Host Write Commands:                3,057,767,507
Controller Busy Time:               2,390
Power Cycles:                       1,733
Power On Hours:                     4,823
Unsafe Shutdowns:                   81
Media and Data Integrity Errors:    0
Error Information Log Entries:      8
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               50 Celsius
Temperature Sensor 2:               58 Celsius

Error Information (NVMe Log 0x01, 16 of 256 entries)
No Errors Logged

Self-test Log (NVMe Log 0x06)
Self-test status: No self-test in progress
Num  Test_Description  Status                       Power_on_Hours  Failing_LBA  NSID Seg SCT Code
 0   Extended          Completed without error                4820            -     -   -   -    -
 1   Short             Completed without error                4819            -     -   -   -    -
 2   Extended          Completed without error                4811            -     -   -   -    -
 3   Short             Completed without error                4810            -     -   -   -    -
 4   Short             Completed without error                4810            -     -   -   -    -
 5   Extended          Completed without error                4810            -     -   -   -    -
 6   Short             Completed without error                4809            -     -   -   -    -
 7   Extended          Completed without error                4762            -     -   -   -    -
 8   Short             Completed without error                4762            -     -   -   -    -
 9   Short             Completed without error                4744            -     -   -   -    -
$ lsmod
Module                  Size  Used by
libfc                 237568  0
scsi_transport_fc     126976  1 libfc
iscsi_ibft             16384  0
vfat                   24576  0
fat                   118784  1 vfat
dm_round_robin         12288  0
dm_multipath           53248  1 dm_round_robin
raid10                 81920  0
raid456               212992  0
async_raid6_recov      20480  1 raid456
async_memcpy           16384  2 raid456,async_raid6_recov
async_pq               20480  2 raid456,async_raid6_recov
async_xor              16384  3 async_pq,raid456,async_raid6_recov
async_tx               16384  5 async_pq,async_memcpy,async_xor,raid456,async_raid6_recov
raid1                  65536  0
raid0                  28672  0
dm_crypt               69632  1
uinput                 24576  0
rfcomm                102400  16
snd_seq_dummy          12288  0
snd_hrtimer            12288  1
nf_conntrack_netbios_ns    12288  1
nf_conntrack_broadcast    12288  1 nf_conntrack_netbios_ns
nft_fib_inet           12288  1
nft_fib_ipv4           12288  1 nft_fib_inet
nft_fib_ipv6           12288  1 nft_fib_inet
nft_fib                12288  3 nft_fib_ipv6,nft_fib_ipv4,nft_fib_inet
nft_reject_inet        12288  10
nf_reject_ipv4         12288  1 nft_reject_inet
nf_reject_ipv6         20480  1 nft_reject_inet
nft_reject             12288  1 nft_reject_inet
nft_ct                 28672  9
nft_chain_nat          12288  3
nf_nat                 65536  1 nft_chain_nat
nf_conntrack          192512  4 nf_nat,nft_ct,nf_conntrack_netbios_ns,nf_conntrack_broadcast
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         12288  1 nf_conntrack
ip_set                 69632  0
nf_tables             417792  301 nft_ct,nft_reject_inet,nft_fib_ipv6,nft_fib_ipv4,nft_chain_nat,nft_reject,nft_fib,nft_fib_inet
mhi_wwan_mbim          20480  0
mhi_wwan_ctrl          16384  0
qrtr                   57344  2
bnep                   36864  2
snd_acp_legacy_mach    32768  0
snd_acp_mach           53248  1 snd_acp_legacy_mach
snd_soc_nau8821        65536  1 snd_acp_mach
snd_soc_dmic           12288  1
snd_acp3x_rn           12288  5
snd_acp3x_pdm_dma      16384  1
snd_sof_amd_acp70      16384  0
snd_sof_amd_acp63      16384  0
snd_sof_amd_vangogh    16384  0
snd_sof_amd_rembrandt    16384  0
binfmt_misc            28672  1
snd_sof_amd_renoir     16384  0
snd_sof_amd_acp        73728  5 snd_sof_amd_acp70,snd_sof_amd_rembrandt,snd_sof_amd_vangogh,snd_sof_amd_acp63,snd_sof_amd_renoir
snd_sof_pci            24576  5 snd_sof_amd_acp70,snd_sof_amd_rembrandt,snd_sof_amd_vangogh,snd_sof_amd_acp63,snd_sof_amd_renoir
snd_sof_xtensa_dsp     16384  1 snd_sof_amd_acp
snd_sof               487424  2 snd_sof_amd_acp,snd_sof_pci
snd_sof_utils          16384  1 snd_sof
snd_pci_ps             28672  0
snd_soc_acpi_amd_match     8192  2 snd_sof_amd_acp63,snd_pci_ps
snd_amd_sdw_acpi       16384  2 snd_sof_amd_acp,snd_pci_ps
snd_ctl_led            28672  0
soundwire_amd          49152  2 snd_sof_amd_acp,snd_pci_ps
soundwire_generic_allocation    12288  1 soundwire_amd
soundwire_bus         147456  2 soundwire_generic_allocation,soundwire_amd
snd_hda_codec_realtek   221184  1
snd_soc_sdca           12288  1 soundwire_bus
snd_hda_codec_generic   131072  1 snd_hda_codec_realtek
snd_soc_core          495616  8 snd_soc_nau8821,snd_acp_mach,snd_acp3x_rn,snd_sof,snd_acp_legacy_mach,soundwire_amd,snd_soc_dmic,snd_acp3x_pdm_dma
snd_hda_scodec_component    20480  1 snd_hda_codec_realtek
mt7921e                24576  0
snd_hda_codec_hdmi    102400  1
mt7921_common          98304  1 mt7921e
snd_compress           28672  1 snd_soc_core
ac97_bus               12288  1 snd_soc_core
snd_pcm_dmaengine      16384  1 snd_soc_core
btusb                  81920  0
snd_hda_intel          69632  12
mt792x_lib             77824  2 mt7921e,mt7921_common
btrtl                  36864  1 btusb
snd_intel_dspcfg       45056  2 snd_hda_intel,snd_sof
mt76_connac_lib       106496  3 mt792x_lib,mt7921e,mt7921_common
btintel                69632  1 btusb
snd_intel_sdw_acpi     16384  1 snd_intel_dspcfg
snd_rpl_pci_acp6x      16384  0
btbcm                  24576  1 btusb
snd_hda_codec         225280  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
btmtk                  32768  1 btusb
mt76                  143360  4 mt792x_lib,mt7921e,mt7921_common,mt76_connac_lib
bluetooth            1048576  44 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
uvcvideo              184320  2
amd_atl                69632  1
snd_hda_core          159744  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_acp_pci            12288  0
intel_rapl_msr         20480  0
snd_hwdep              20480  1 snd_hda_codec
mac80211             1757184  4 mt792x_lib,mt76,mt7921_common,mt76_connac_lib
snd_seq               135168  7 snd_seq_dummy
intel_rapl_common      61440  1 intel_rapl_msr
snd_acp_legacy_common    16384  1 snd_acp_pci
uvc                    12288  1 uvcvideo
videobuf2_vmalloc      20480  1 uvcvideo
videobuf2_memops       16384  1 videobuf2_vmalloc
snd_seq_device         16384  1 snd_seq
videobuf2_v4l2         40960  1 uvcvideo
edac_mce_amd           40960  0
snd_pci_acp6x          20480  0
videobuf2_common      102400  4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
kvm_amd               249856  0
snd_pci_acp5x          20480  0
videodev              417792  2 videobuf2_v4l2,uvcvideo
mc                     90112  6 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
libarc4                12288  1 mac80211
ee1004                 16384  0
snd_pcm               196608  17 snd_sof_amd_acp,snd_soc_nau8821,snd_hda_codec_hdmi,snd_pci_acp6x,snd_acp_mach,snd_hda_intel,snd_hda_codec,snd_sof,snd_compress,snd_acp_legacy_mach,snd_soc_core,snd_sof_utils,soundwire_amd,snd_hda_core,snd_acp3x_pdm_dma,snd_pci_ps,snd_pcm_dmaengine
cfg80211             1400832  4 mt76,mac80211,mt7921_common,mt76_connac_lib
kvm                  1449984  1 kvm_amd
snd_timer              53248  3 snd_seq,snd_hrtimer,snd_pcm
snd_rn_pci_acp3x       24576  0
snd_acp_config         24576  10 snd_rn_pci_acp3x,snd_sof_amd_acp70,snd_pci_acp6x,snd_pci_acp5x,snd_sof_amd_rembrandt,snd_sof_amd_vangogh,snd_sof_amd_acp63,snd_acp_pci,snd_pci_ps,snd_sof_amd_renoir
rapl                   20480  0
snd_soc_acpi           16384  3 snd_sof_amd_acp,snd_acp_config,snd_pci_ps
think_lmi              45056  0
mhi_pci_generic        40960  0
wmi_bmof               12288  0
firmware_attributes_class    12288  1 think_lmi
mhi                   155648  3 mhi_wwan_mbim,mhi_wwan_ctrl,mhi_pci_generic
snd_pci_acp3x          20480  0
pcspkr                 12288  0
i2c_piix4              40960  0
k10temp                16384  0
i2c_smbus              20480  1 i2c_piix4
i2c_scmi               16384  0
joydev                 32768  0
nfnetlink              24576  4 nf_tables,ip_set
zram                   65536  1
lz4hc_compress         20480  1 zram
lz4_compress           24576  1 zram
overlay               241664  1
squashfs               98304  1
isofs                  65536  1
amdgpu              19537920  17
amdxcp                 12288  1 amdgpu
drm_exec               12288  1 amdgpu
crct10dif_pclmul       12288  1
gpu_sched              65536  1 amdgpu
crc32_pclmul           12288  0
nvme_tcp               61440  0
crc32c_intel           12288  2
drm_buddy              24576  1 amdgpu
polyval_clmulni        12288  0
drm_ttm_helper         16384  1 amdgpu
polyval_generic        12288  1 polyval_clmulni
ttm                   114688  2 amdgpu,drm_ttm_helper
ghash_clmulni_intel    16384  0
rtsx_pci_sdmmc         36864  0
nvme_fabrics           45056  1 nvme_tcp
uas                    40960  0
sha512_ssse3           53248  0
i2c_algo_bit           20480  1 amdgpu
nvme_keyring           20480  2 nvme_tcp,nvme_fabrics
mmc_core              303104  1 rtsx_pci_sdmmc
thinkpad_acpi         200704  0
drm_suballoc_helper    16384  1 amdgpu
nvme                   73728  1
sha256_ssse3           36864  0
usb_storage            90112  3 uas
drm_display_helper    294912  1 amdgpu
snd                   159744  53 snd_ctl_led,snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_acp_mach,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_sof,snd_timer,snd_compress,thinkpad_acpi,snd_acp_legacy_mach,snd_soc_core,snd_pcm
sha1_ssse3             32768  0
soundcore              16384  2 snd_ctl_led,snd
nvme_core             253952  4 nvme_tcp,nvme,nvme_fabrics
ucsi_acpi              12288  0
cec                    98304  1 drm_display_helper
sp5100_tco             20480  0
r8169                 135168  0
typec_ucsi             77824  1 ucsi_acpi
sparse_keymap          12288  1 thinkpad_acpi
platform_profile       12288  1 thinkpad_acpi
rtsx_pci              143360  1 rtsx_pci_sdmmc
rfkill                 40960  8 bluetooth,thinkpad_acpi,cfg80211
video                  81920  2 thinkpad_acpi,amdgpu
nvme_auth              28672  1 nvme_core
realtek                45056  2
typec                 122880  1 typec_ucsi
wmi                    32768  3 video,wmi_bmof,think_lmi
serio_raw              20480  0
sunrpc                897024  1
be2iscsi              217088  0
bnx2i                  81920  0
cnic                   90112  1 bnx2i
uio                    32768  1 cnic
cxgb4i                 73728  0
cxgb4                 753664  1 cxgb4i
tls                   163840  1 cxgb4
cxgb3i                 49152  0
cxgb3                 258048  1 cxgb3i
mdio                   12288  1 cxgb3
libcxgbi              110592  2 cxgb4i,cxgb3i
libcxgb                28672  2 libcxgbi,cxgb3i
qla4xxx               499712  0
iscsi_boot_sysfs       20480  3 be2iscsi,iscsi_ibft,qla4xxx
iscsi_tcp              28672  0
libiscsi_tcp           40960  4 libcxgbi,iscsi_tcp,cxgb4i,cxgb3i
libiscsi               90112  8 be2iscsi,libiscsi_tcp,bnx2i,libcxgbi,iscsi_tcp,qla4xxx,cxgb4i,cxgb3i
scsi_transport_iscsi   192512  7 be2iscsi,libiscsi_tcp,bnx2i,libcxgbi,iscsi_tcp,qla4xxx,libiscsi
loop                   45056  2
fuse                  245760  5

Any block that the ssd detects as bad is replaced. Which means you never see a bad-block.

Please share smartctl -x for the ssd so we an see what the status suggests.

Hi @hellobanana and welcome to Fedora

There are different versions of your model on the market. so can you provide at least the type number found on the bottom cover near the serial number. Some of them supports Fedora.

my next step would be to download the lDiag for Linux (iso) from Lenovo, burn them on a USB Key and run an extended unattended Test with 3 passes minimum.

@barryascott I already attached that in the first, it’s just hidden in the System info collapsible panel.

@truster Model: 21A00056CK. Thanks for suggesting lDiag, I’ll give it a try and let you know the results.

This looks healthy from the point of view of bad blocks.

Yes. But badblocks reports issues anyway when running on a filesystem that’s in LUKS container.

I was actually thinking this is a software issue, because it does manifest when running Fedora 41 live, but not Fedora 40 live.

Check that badblocks makes sense on a ssd.
It was designed to find bad blocks of HDDs.

I wonder if you have a cabling or connector issue?

I have checked the SSD in the M.2 slot, it seems to be fine.

My reasoning with badblocks -n was more about the output varying in different scenarios (Fedora 40 vs Fedora 41 and laptop vs desktop). The program works by “overwriting data, then reading to verify, and then writing the original data back afterwards.” (according to this post ). This works fine when writing to a normal partition but fails when writing to the LUKS partition.

Hi. lDiag did not encounter any failure after 5 passes of memory, cpu, motherboard and video card tests.

If i understand you correctly, you ran badblocks inside the Luks Volume? This shoudn’t be possible, and badblock should stop you from doing so:

Output from my test:

liveuser@localhost-live:~$ sudo badblocks -sn /dev/mapper/luks-2567e774-2a59-424d-91a1-92853ae83609
/dev/mapper/luks-2567e774-2a59-424d-91a1-92853ae83609 is apparently in use by the system; it's not safe to run badblocks!

That happened to me as well because the volume was used by LVM (vg was active). vgchange -an fedora deactivated that for me. Afterwards, badblocks was able to run.

The problem only occurs when the battery is low (the threshold is between 30% and 40%) AND when the scaling governor is set to powersave (cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor). When the governor is set to performence, the problem goes away.

The question is why this does not occur with Fedora 40.