Java free(): обнаружено двойное освобождение в tcache2 при использовании BufferedImageJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java free(): обнаружено двойное освобождение в tcache2 при использовании BufferedImage

Сообщение Anonymous »

возникла интересная проблема, которую я пытаюсь решить.
Следует упомянуть, что я понимаю, что такое двойное освобождение, будучи C++, когда есть попытка освободить память дважды, но поскольку Java, это невозможно контролировать.
У меня есть следующий метод:

Код: Выделить всё

private static Mat imageToMat(BufferedImage sourceImg) throws IOException {
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
ImageIO.write(sourceImg, "jpg", byteArrayOutputStream);
return Imgcodecs.imdecode(new MatOfByte(byteArrayOutputStream.toByteArray()), Imgcodecs.IMREAD_COLOR);
} catch (IOException e) {
throw new IOException(e);
}
}
Проблема заключается в том, что вторая строка этого метода (ImageIO.write) выдает следующую ошибку до полного сбоя моей программы.
free(): обнаружено двойное освобождение в tcache2.
Я разобрался с этим и определил, что это не проблема с ImageIO (я удалил ее и проделал некоторые базовые манипуляции с буферизованным изображением, и оно выдает то же сообщение.
Я работал над этим и определил, что это не проблема с ImageIO (я удалил это и проделал некоторые базовые манипуляции с буферизованным изображением, и оно выдает то же сообщение.
Я работал над этим и определил, что это не проблема с ImageIO) p>
Некоторые вещи стоят того упоминание об этой среде.
Этот метод отлично работает в среде Windows 11/10/7.
Это происходит в Ubuntu 22.04.3 LTS. (на виртуальной машине).
Моя первая мысль заключалась в том, что это, вероятно, проблема с версией openjdk, установленной на виртуальной машине, поэтому я попытался перейти на OpenJDK с 19 по 23 (обратите внимание, что в винде это openjdk 20, который работает нормально).
Обратите внимание, что у меня нет другой доступной среды Ubuntu за пределами виртуальной машины (что, как я начинаю подозревать, связано с какой-то проблемой графики/ускорения, но Думаю, на данный момент я хватаюсь за соломинку.
Кто-нибудь видел что-нибудь подобное при работе с BufferedImages?

Подробнее здесь: https://stackoverflow.com/questions/792 ... feredimage
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Java free(): обнаружено двойное освобождение в tcache2 при использовании BufferedImage
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как решить проблему free(): в tcache 2 обнаружено двойное освобождение make: *** [Makefile:88: test] Прервано (дамп ядра
    Гость » » в форуме C++
    0 Ответы
    57 Просмотры
    Последнее сообщение Гость
  • Как приложение может защититься от «использования-free-free» или «double-free», не требуя переписывания приложения?
    Anonymous » » в форуме C++
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • BufferedImage.Type_INT_RGB и BufferedImage.TYPE_INT_ARGB рисуются по-разному?
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • BufferedImage.Type_INT_RGB и BufferedImage.TYPE_INT_ARGB рисуются по-разному?
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»