R35.4.1 nvargus-daemon *** stack smashing detected ***: terminated

Hi,

my camera driver was running well on r35.2.1.
But now on r35.4.1, i try to enumerate camera by “nvargus_nvraw --lps”

then the daemon program nvargus-daemon crashed with following logs:

=== NVIDIA Libargus Camera Service (0.99.33)=== Listening for connections…

=== nvargus_nvraw[36626]: Connection established (FFFF7E9A5900)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0

OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module3
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module4
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module5
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module6
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module7
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
SCF: Error BadParameter: (propagating from src/services/capture/CaptureServiceDeviceSensor.cpp, function open(), line 189)
*** stack smashing detected ***: terminated

[1]+ Aborted sudo enableCamInfiniteTimeout=1 nvargus-daemon

I don’t understand why stack smash happened here?

I tried to run nvargus-daemon with gdb, there is more logs

(gdb) run
Starting program: /usr/sbin/nvargus-daemon
[Thread debugging using libthread_db enabled]
Using host libthread_db library “/lib/aarch64-linux-gnu/libthread_db.so.1”.
=== NVIDIA Libargus Camera Service (0.99.33)=== Listening for connections…

[New Thread 0xfffff4868900 (LWP 50408)]
=== nvargus_nvraw[50406]: Connection established (FFFFF4868900)[New Thread 0xffffefffb900 (LWP 50410)]
Thread 1 getting next capture
Thread 1 is waiting[New Thread 0xffffef7fa900 (LWP 50411)]

Thread 2 getting next capture
Thread 2 is waiting[New Thread 0xffffeeff9900 (LWP 50412)]

Thread 3 getting next capture
Thread 3 is waiting[New Thread 0xffffee7f8900 (LWP 50413)]

Thread 4 getting next capture
Thread 4 is waiting[New Thread 0xffffedff7900 (LWP 50414)]

Thread 5 getting next capture
Thread 5 is waiting[New Thread 0xffffed7f6900 (LWP 50415)]

Thread 6 getting next capture
Thread 6 is waiting[New Thread 0xffffecff5900 (LWP 50416)]

Thread 7 getting next capture
Thread 7 is waiting[New Thread 0xffffec7f4900 (LWP 50417)]

Thread 8 getting next capture
[New Thread 0xffffebff3900 (LWP 50418)]
Thread 8 is waiting[New Thread 0xffffeb7f2900 (LWP 50419)]

Thread 9 getting next capture[New Thread 0xffffeaff1900 (LWP 50420)]

Thread 11 getting next capture[New Thread 0xffffea7f0900 (LWP 50421)]

Thread 9 is waiting
Thread 12 getting next capture
Thread 11 is waiting
Thread 10 getting next capture
Thread 12 is waiting
Starting services…
Thread 10 is waiting[New Thread 0xffffe9857900 (LWP 50425)]

Worker thread IspHw frameComplete start
[New Thread 0xffffe9056900 (LWP 50426)]
Worker thread CaptureScheduler checkFramePending start
[New Thread 0xffffe8855900 (LWP 50427)]
Worker thread CaptureScheduler frameStart start
[New Thread 0xffffe8054900 (LWP 50429)]
Worker thread V4L2CaptureScheduler checkCaptureComplete start
[New Thread 0xffffe7853900 (LWP 50430)]
Worker thread V4L2CaptureScheduler issueCaptures start
[New Thread 0xffffdefb9900 (LWP 50433)]
[New Thread 0xffffde6a2900 (LWP 50436)]
Worker thread PS handleRequests start
getInstance: s_instance(0xfffff0634a30)
getInstance: s_instance(0xfffff0634a30)
subscribe: SensorType(gyroscope)
subscribe: create SensorType(gyroscope) sensor(0xfffff04a5ae0)
subscribe: SensorType(accelerometer)
subscribe: create SensorType(accelerometer) sensor(0xfffff0484e00)
AC plugin not present: dlopen “acplugin.so”, acplugin.so: cannot open shared object file: No such file or directory
Services are started
NvPclSetHotplugCallback: ++++++++++++++++++++++
---- Imager: Calibration blob file handling supported in this build ----
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclModuleListInitialize: numBuiltinModules 8 11
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module3
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module4
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module5
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module6
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module7
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition – Name: ar0820_front_0120
NvPclHwPrintModuleDefinition – Position: 1
NvPclHwPrintModuleDefinition – CalibrationData Found: 1
NvPclHwPrintCameraSubModule – HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule – HwCamSubModule[0].DevName: ar0820 1-0011
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition – Name: ar0820_front_0030
NvPclHwPrintModuleDefinition – Position: 1
NvPclHwPrintModuleDefinition – CalibrationData Found: 1
NvPclHwPrintCameraSubModule – HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule – HwCamSubModule[0].DevName: ar0820 1-0012
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition – Name: ar0820_rear_0070
NvPclHwPrintModuleDefinition – Position: 0
NvPclHwPrintModuleDefinition – CalibrationData Found: 1
NvPclHwPrintCameraSubModule – HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule – HwCamSubModule[0].DevName: ar0820 1-0013
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition – Name: ar0820_rear_0030
NvPclHwPrintModuleDefinition – Position: 0
NvPclHwPrintModuleDefinition – CalibrationData Found: 1
NvPclHwPrintCameraSubModule – HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule – HwCamSubModule[0].DevName: ar0820 1-0014
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition – Name: ar0820_frontleft_0120
NvPclHwPrintModuleDefinition – Position: 54
NvPclHwPrintModuleDefinition – CalibrationData Found: 1
NvPclHwPrintCameraSubModule – HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule – HwCamSubModule[0].DevName: ar0820 7-0015
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition – Name: ar0820_rearleft_0120
NvPclHwPrintModuleDefinition – Position: 66
NvPclHwPrintModuleDefinition – CalibrationData Found: 1
NvPclHwPrintCameraSubModule – HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule – HwCamSubModule[0].DevName: ar0820 7-0016
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition – Name: ar0820_frontright_0120
NvPclHwPrintModuleDefinition – Position: 54
NvPclHwPrintModuleDefinition – CalibrationData Found: 1
NvPclHwPrintCameraSubModule – HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule – HwCamSubModule[0].DevName: ar0820 7-0017
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition – Name: ar0820_rearright_0120
NvPclHwPrintModuleDefinition – Position: 66
NvPclHwPrintModuleDefinition – CalibrationData Found: 1
NvPclHwPrintCameraSubModule – HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule – HwCamSubModule[0].DevName: ar0820 7-0018
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclModuleListInitialize: numBuiltinModules 8 22
NvPclModuleListInitialize: NvPclModule list[0]: ar0820_front_0120 position 1 numBuiltinModules 8
NvPclModuleListInitialize: NvPclModule list[1]: ar0820_front_0030 position 1 numBuiltinModules 8
NvPclModuleListInitialize: NvPclModule list[2]: ar0820_rear_0070 position 0 numBuiltinModules 8
NvPclModuleListInitialize: NvPclModule list[3]: ar0820_rear_0030 position 0 numBuiltinModules 8
NvPclModuleListInitialize: NvPclModule list[4]: ar0820_frontleft_0120 position 54 numBuiltinModules 8
NvPclModuleListInitialize: NvPclModule list[5]: ar0820_rearleft_0120 position 66 numBuiltinModules 8
NvPclModuleListInitialize: NvPclModule list[6]: ar0820_frontright_0120 position 54 numBuiltinModules 8
NvPclModuleListInitialize: NvPclModule list[7]: ar0820_rearright_0120 position 66 numBuiltinModules 8
NvPclHwScanExternalCameras – adding video9 to discover list
NvPclHwScanExternalCameras – adding video8 to discover list
NvPclHwScanExternalCameras – adding video7 to discover list
NvPclHwScanExternalCameras – adding video6 to discover list
NvPclHwScanExternalCameras – adding video5 to discover list
NvPclHwScanExternalCameras – adding video4 to discover list
NvPclHwScanExternalCameras – adding video3 to discover list
NvPclHwScanExternalCameras – adding video2 to discover list
NvPclHwScanExternalCameras – adding video11 to discover list
NvPclHwScanExternalCameras – adding video10 to discover list
NvPclHwScanExternalCameras – adding video1 to discover list
NvPclHwScanExternalCameras – adding video0 to discover list
NvPclModuleListInitialize: numPlugableModules 12 +++
NvPclHwScanExternalCameras – adding video9 to discover list
NvPclHwScanExternalCameras – adding video8 to discover list
NvPclHwScanExternalCameras – adding video7 to discover list
NvPclHwScanExternalCameras – adding video6 to discover list
NvPclHwScanExternalCameras – adding video5 to discover list
NvPclHwScanExternalCameras – adding video4 to discover list
NvPclHwScanExternalCameras – adding video3 to discover list
NvPclHwScanExternalCameras – adding video2 to discover list
NvPclHwScanExternalCameras – adding video11 to discover list
NvPclHwScanExternalCameras – adding video10 to discover list
NvPclHwScanExternalCameras – adding video1 to discover list
NvPclHwScanExternalCameras – adding video0 to discover list
NvPclHwAddModules isVirtual 1 ^^^^^^^^
NvPclHwScanExternalCameras – adding video9 to discover list
NvPclHwScanExternalCameras – adding video8 to discover list
NvPclHwScanExternalCameras – adding video7 to discover list
NvPclHwScanExternalCameras – adding video6 to discover list
NvPclHwScanExternalCameras – adding video5 to discover list
NvPclHwScanExternalCameras – adding video4 to discover list
NvPclHwScanExternalCameras – adding video3 to discover list
NvPclHwScanExternalCameras – adding video2 to discover list
NvPclHwScanExternalCameras – adding video11 to discover list
NvPclHwScanExternalCameras – adding video10 to discover list
NvPclHwScanExternalCameras – adding video1 to discover list
NvPclHwScanExternalCameras – adding video0 to discover list
NvPclHwAddModules isVirtual 1 ^^^^^^^^
NvPclHwAddModules isVirtual 0 ^^^^^^^^
NvPclHwAddModules isVirtual 0 ^^^^^^^^
NvPclModuleListInitialize: numPlugableModules 0 —
getHotplugMonitor: Getting hotplug monitor instance
initializeHotplug++
[New Thread 0xffffddea1900 (LWP 50481)]
hotPlugfunc ++
addWatch: Watch added wd=‘1’
CheckProcDTExists: INFO: accessing /proc/device-tree/tegra-virtual-camera-platform/modules; No such file or directory
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
setHotplugCallback: Registered new callback client
NvPclSetHotplugCallback: ----------------------
hotPlugfunc: reading from inotify FD, Thread waiting
numSources: numSources 8

numSources: numSources 8

numSources: numSources 8

getSource: index 0 and numSources 8

numSources: numSources 8

numSources: numSources 8

addSourceByIndex: index 0 and guid 0ud

NvPclOpen: ++++++++++++++++++++++
NvPclStateControllerOpen: Found GUID 0 match at index[2]
NvPclStateControllerOpen: Found GUID 0 match at index[3]
NvPclHwInitializeModule: allocate overrides pathname @ 0xfffff0570400
NvPclHwInitializeModule: allocate overrides pathname @ 0xfffff0633520
NvPclHwInitializeModule: allocate overrides pathname @ 0xfffff04a0ad0
NvPclHwInitializeModule: allocate overrides pathname @ 0xfffff0575a60
NvPclHwInitializeModule: allocate overrides pathname @ 0xfffff08e56c0
NvPclHwInitializeModule: allocate overrides pathname @ 0xfffff08481f0
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16
CheckOverridesPermissions: stat(/Calib/camera_override.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/camera_overrides.isp] 2/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/camera_overrides.isp] 5/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/camera_overrides.isp) call failed
LoadOverridesFile: looking for override file [/data/vendor/nvcam/settings/ar0820_front_0120.isp] 6/16
CheckOverridesPermissions: stat(/data/vendor/nvcam/settings/ar0820_front_0120.isp) call failed
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/ar0820_front_0120.isp] 7/16
CheckOverridesPermissions: stat(/opt/nvidia/nvcam/settings/ar0820_front_0120.isp) call failed
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/ar0820_front_0120.isp] 8/16
CheckOverridesPermissions: stat(/var/nvidia/nvcam/settings/ar0820_front_0120.isp) call failed
---- imager: No override file found. ----
Imager: looking for override file [/mnt/factory/camera/factory.bin] 1/16
Imager: looking for override file [/Calib/factory.bin] 2/16
Imager: looking for override file [/Calib/calibration.bin] 3/16
Imager: looking for override file [(null)] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
Imager: looking for override file [/data/vendor/nvcam/settings/factory.bin] 1/16
Imager: looking for override file [/data/vendor/nvcam/settings/ar0820_front_0120.bin] 2/16
Imager: looking for override file [/opt/nvidia/nvcam/settings/ar0820_front_0120.bin] 3/16
Imager: looking for override file [/var/nvidia/nvcam/settings/ar0820_front_0120.bin] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_sensor)
NvPclCreateDriver: Found a Driver name match (v4l2_sensor)
NvPclConnectDrivers: hImager was NULL, creating new imager
NvPclInitializeDrivers: v4l2_sensor ++++++++++++++++++
OFDPropertyGetString: could not read property [devnode-bus]
OFDPropertyGetString: could not read property [delayed_gain]
OFDPropertyGetString: could not read property [supports-alt-exp]
loadBinaryBlob: Binary read 0
OFDPropertyGetString: could not read property [type]
loadSubType: Sensor type missing in DT, 206
OFDPropertyCopyToLong: could not read property [set_mode_delay_ms]
OFDPropertyCopyToFloat: could not read property [mode0.gain_step_pitch]
OFDPropertyCopyToLong: could not read property [mode0.clk_settletime]
OFDPropertyCopyToLong: could not read property [mode0.embedded_metadata_width]
OFDPropertyCopyToLong: could not read property [mode0.lane_polarity]
OFDPropertyGetString: could not read property [mode0.x_start]
OFDPropertyGetString: could not read property [mode0.y_start]
OFDPropertyGetString: could not read property [mode0.x_end]
OFDPropertyGetString: could not read property [mode0.y_end]
OFDPropertyGetString: could not read property [mode0.h_scaling]
OFDPropertyGetString: could not read property [mode0.v_scaling]
OFDPropertyCopyToLong: could not read property [set_mode_delay_ms]
OFDPropertyCopyToFloat: could not read property [mode1.gain_step_pitch]
OFDPropertyCopyToLong: could not read property [mode1.clk_settletime]
OFDPropertyCopyToLong: could not read property [mode1.embedded_metadata_width]
OFDPropertyCopyToLong: could not read property [mode1.lane_polarity]
OFDPropertyGetString: could not read property [mode1.x_start]
OFDPropertyGetString: could not read property [mode1.y_start]
OFDPropertyGetString: could not read property [mode1.x_end]
OFDPropertyGetString: could not read property [mode1.y_end]
OFDPropertyGetString: could not read property [mode1.h_scaling]
OFDPropertyGetString: could not read property [mode1.v_scaling]
OFDPropertyCopyToLong: could not read property [set_mode_delay_ms]
OFDPropertyCopyToFloat: could not read property [mode2.gain_step_pitch]
OFDPropertyCopyToLong: could not read property [mode2.clk_settletime]
OFDPropertyCopyToLong: could not read property [mode2.embedded_metadata_width]
OFDPropertyCopyToLong: could not read property [mode2.lane_polarity]
OFDPropertyGetString: could not read property [mode2.x_start]
OFDPropertyGetString: could not read property [mode2.y_start]
OFDPropertyGetString: could not read property [mode2.x_end]
OFDPropertyGetString: could not read property [mode2.y_end]
OFDPropertyGetString: could not read property [mode2.h_scaling]
OFDPropertyGetString: could not read property [mode2.v_scaling]
initialize: Loaded Driver: 3 Modes Available--------------
NvPclInitializeDrivers: v4l2_sensor ------------------
NvPclOpen: ----------------------
SCF: Error BadParameter: (propagating from src/services/capture/CaptureServiceDeviceSensor.cpp, function open(), line 189)
NvPclClose: ++++++++++++++++++++++
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xfffff0575a60
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xfffff08e56c0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xfffff08481f0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xfffff0570400
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xfffff0633520
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0xfffff04a0ad0
NvPclStateControllerClose: Module ar0820_front_0120 closed
NvPclClose: ----------------------
*** stack smashing detected ***: terminated
–Type for more, q to quit, c to continue without paging–

Thread 2 “nvargus-daemon” received signal SIGABRT, Aborted.
[Switching to Thread 0xfffff4868900 (LWP 50408)]
__GI_raise (sig=sig@entry=6) at …/sysdeps/unix/sysv/linux/raise.c:50
50 …/sysdeps/unix/sysv/linux/raise.c: No such file or directory.

can u find out the problem here?

hello chenghao.shen,

did you apply the camera override files?
please check removing all files under… /var/nvidia/nvcam/settings/ for testing.

Yes

i have tried to remove all files under “/var/nvidia/nvcam/settings/”. The result seemed to be the same

please refer to Applications Using V4L2 IOCTL Directly.
you may test with V4L2 IOCTL to verify basic camera functionality.

With v4l2-ctl ( package v4l-utils ), the camera works.

And i know the first with argus is to test the camera enumeration with “nvargus_nvraw --lps”. This test failed with the crash of nvargus_daemon.

can you dump the frames or fetching the buffers continuously?
if yes, there should be something wrong in the sensor device tree, you may dig into Sensor Software Driver Programming.

Yes, with v4l2 i can continuously receive frames and sure save to files.

The device tree i use is the same as with version r35.2
OK i’will then check the device tree to see if there’s change in the new r35.4

please go ahead to review the code, you may check Release Notes (r35.4.1) as see-also.

Hi Jerry,

finally, i find out, the problem is caused by the shared library for r352

i forgot to delete it in the new version…

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.