You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update known issues for WPILib 2022.4.1
Add known issue for synchronized deadlock
* Update source/docs/yearly-overview/known-issues.rst
Co-authored-by: Peter Johnson <[email protected]>
Co-authored-by: Peter Johnson <[email protected]>
Copy file name to clipboardExpand all lines: source/docs/yearly-overview/known-issues.rst
+35-7Lines changed: 35 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,13 +15,6 @@ Onboard I2C Causing System Lockups
15
15
16
16
**Workaround:** The only surefire mitigation is to use the MXP I2C port instead. Acessing the device less frequently and/or using a different roboRIO may significantly reduce the likelihood/frequency of lockups, it will be up to each team to assess their tolerance of the risk of lockup. This lockup can not be definitively identified on the field and a field fault will not be called for a match where this behavior is believed to occur. This lockup is a CPU/kernel hang, the roboRIO will completely stop responding and will not be accessible via the DS, webpage or SSH. If you can access your roboRIO via any of these methods, you are experiencing a different issue.
17
17
18
-
ADIS16448 not reading values in Java
19
-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20
-
21
-
**Issue:** In WPILib 2022.3.1, using the no-args constructor for the ADIS16448 IMU in Java results in an divide by zero exception in a separate thread and no IMU data updates.
22
-
23
-
**Workaround:** Instead of the no-args constructor, use ``new ADIS16448_IMU(ADIS16448_IMU.IMUAxis.kZ, SPI.Port.kMXP, ADIS16448_IMU.CalibrationTime._1s);``.
24
-
25
18
CAN bus utilization is noisy
26
19
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
27
20
@@ -119,6 +112,41 @@ LabVIEW Autorun graphics say 2020
119
112
120
113
**Workaround:** This can be safely ignored, if the menu item says 2022, you are installing the correct software.
121
114
115
+
Fixed in WPILib 2022.4.1
116
+
------------------------
117
+
118
+
Reentrant uses of synchronized may cause deadlock in Java
**Issue:** If multiple threads call a `synchronized` object, there may be a deadlock. This is caused by a bug in the version of JDK bundled with the 2022.1.1 to 2022.3.1 versions of WPILib.
122
+
123
+
**Workaround:** There are two options for workarounds:
124
+
125
+
#. Install the 2021 JDK. This is performed automatically in WPILib 2022.4.1 and later.
126
+
127
+
#. Download the `2021 JDK <https://frcmaven.wpi.edu/artifactory/release/edu/wpi/first/jdk/roborio-2021/11.0.9u11-1/roborio-2021-11.0.9u11-1.ipk>`__.
128
+
129
+
#. :doc:`Copy </docs/software/roborio-info/roborio-ftp>` the downloaded ``.ipk`` file to the roboRIO.
130
+
131
+
#. :doc:`SSH </docs/software/roborio-info/roborio-ssh>` as admin to the roborio and execute ``opkg remove frc2022-openjdk*`` and ``opkg install roborio-2021-11.0.9u11-1.ipk``
132
+
133
+
#. Replace uses of ``synchronized`` with ``reentrantLock``
134
+
135
+
.. code-block:: Java
136
+
137
+
try {
138
+
reentrantLock.lock()
139
+
...do code here...
140
+
} finally {
141
+
reentrantLock.unlock()
142
+
}
143
+
144
+
ADIS16448 not reading values in Java
145
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
146
+
147
+
**Issue:** In WPILib 2022.3.1, using the no-args constructor for the ADIS16448 IMU in Java results in an divide by zero exception in a separate thread and no IMU data updates.
148
+
149
+
**Workaround:** Instead of the no-args constructor, use ``new ADIS16448_IMU(ADIS16448_IMU.IMUAxis.kZ, SPI.Port.kMXP, ADIS16448_IMU.CalibrationTime._1s);``.
122
150
123
151
Fixed in Image 2022_v4.0 (Game Tools 2022 f1 and WPILib 2022.3.1)
0 commit comments