VTK8.2+Qt5.15.2 In AddObserver function call Render() "received signal SIGSEGV, Segmentation fault."

Debug info

gdb ./test_qt_vtk
(gdb) r
Starting program: /home/frp/1-Code/test_qt_vtk/build/test_qt_vtk 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe6059700 (LWP 8086)]
[New Thread 0x7fffdb7d3700 (LWP 8087)]
[New Thread 0x7fffdafd2700 (LWP 8088)]
[New Thread 0x7fffd9551700 (LWP 8089)]
[New Thread 0x7fffc7f5a700 (LWP 8090)]
[New Thread 0x7fffbffff700 (LWP 8091)]
[New Thread 0x7fffc7759700 (LWP 8092)]
[New Thread 0x7fffc6f58700 (LWP 8093)]

Thread 1 "test_qt_vtk" received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in  ()
#1  0x00007ffff73cf3b0 in vtkOpenGLBufferObject::GenerateBuffer(vtkOpenGLBufferObject::ObjectType) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#2  0x00007ffff73cf3f4 in vtkOpenGLBufferObject::UploadInternal(void const*, unsigned long, vtkOpenGLBufferObject::ObjectType) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#3  0x00007ffff7472666 in vtkOpenGLVertexBufferObject::UploadDataArray(vtkDataArray*) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#4  0x00007ffff747923b in vtkOpenGLVertexBufferObjectGroup::BuildAllVBOs(vtkOpenGLVertexBufferObjectCache*) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#5  0x00007ffff742ce6a in vtkOpenGLPolyDataMapper::BuildBufferObjects(vtkRenderer*, vtkActor*) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#6  0x00007ffff741a662 in vtkOpenGLPolyDataMapper::RenderPieceStart(vtkRenderer*, vtkActor*) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#7  0x00007ffff742f184 in vtkOpenGLPolyDataMapper::RenderPiece(vtkRenderer*, vtkActor*) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#8  0x00007ffff6b55b0a in vtkPolyDataMapper::Render(vtkRenderer*, vtkActor*) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#9  0x00007ffff73cdeda in vtkOpenGLActor::Render(vtkRenderer*, vtkMapper*) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#10 0x00007ffff6abe47f in vtkActor::RenderOpaqueGeometry(vtkViewport*) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#11 0x00007ffff6b62936 in vtkRenderer::DeviceRenderOpaqueGeometry() [clone .localalias.51] ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#12 0x00007ffff7453b23 in vtkOpenGLRenderer::DeviceRenderOpaqueGeometry() ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#13 0x00007ffff7451629 in vtkOpenGLRenderer::UpdateGeometry() ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#14 0x00007ffff744da50 in vtkOpenGLRenderer::DeviceRender() ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#15 0x00007ffff6b6495f in vtkRenderer::Render() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#16 0x00007ffff6b6191f in vtkRendererCollection::Render() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#17 0x00007ffff6b6f60d in vtkRenderWindow::DoStereoRender() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#18 0x00007ffff6b6f8f0 in vtkRenderWindow::Render() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingCore-8.2.so.1
#19 0x00007ffff744cb39 in vtkOpenGLRenderWindow::Render() () at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#20 0x00007ffff73cb001 in vtkGenericOpenGLRenderWindow::Render() ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkRenderingOpenGL2-8.2.so.1
#21 0x0000555555558783 in MainWindow::update1() ()
---Type <return> to continue, or q <return> to quit---
#22 0x00005555555596ac in vtkObject::vtkClassMemberCallback<MainWindow>::operator()(vtkObject*, unsigned long, void*) ()
#23 0x00007ffff5ec75b9 in vtkSubjectHelper::InvokeEvent(unsigned long, void*, vtkObject*) ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkCommonCore-8.2.so.1
#24 0x00007ffff7776421 in QVTKOpenGLNativeWidget::recreateFBO() ()
    at /home/frp/2-Third_libs/VTK-8.2.0/install_x86/lib/libvtkGUISupportQt-8.2.so.1
#25 0x00007ffff45acddf in doActivate<false>(QObject*, int, void**) (sender=0x55555597c250, signal_index=10, argv=0x7fffffffd640, argv@entry=0x0)
    at kernel/qobject.cpp:3898
#26 0x00007ffff45a6479 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x55555597c250, m=m@entry=0x7ffff5c32d00 <QOpenGLWidget::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x0) at kernel/qobject.cpp:3946
#27 0x00007ffff55bdd83 in QOpenGLWidget::resized() (this=this@entry=0x55555597c250) at .moc/moc_qopenglwidget.cpp:183
#28 0x00007ffff55be115 in QOpenGLWidgetPrivate::recreateFbo() (this=this@entry=0x5555558c2260) at kernel/qopenglwidget.cpp:764
#29 0x00007ffff55be828 in QOpenGLWidget::resizeEvent(QResizeEvent*) (this=0x55555597c250, e=<optimized out>) at kernel/qopenglwidget.cpp:1290
#30 0x00007ffff559fc6e in QWidget::event(QEvent*) (this=0x55555597c250, event=0x7fffffffda20) at kernel/qwidget.cpp:8809
#31 0x00007ffff556143c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55555597c250, e=0x7fffffffda20)
    at kernel/qapplication.cpp:3632
#32 0x00007ffff5567f20 in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x55555597c250, e=0x7fffffffda20)
    at kernel/qapplication.cpp:3378
#33 0x00007ffff4574808 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55555597c250, event=0x7fffffffda20)
    at kernel/qcoreapplication.cpp:1063
#34 0x00007ffff45749be in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=receiver@entry=0x55555597c250, event=event@entry=0x7fffffffda20) at kernel/qcoreapplication.cpp:1458
#35 0x00007ffff5597f4d in QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) (this=this@entry=0x5555558c2260, recursive=recursive@entry=false, disableUpdates=<optimized out>, disableUpdates@entry=false) at kernel/qwidget.cpp:7711
#36 0x00007ffff559c153 in QWidgetPrivate::show_helper() (this=this@entry=0x5555558c2260) at kernel/qwidget.cpp:7762
#37 0x00007ffff559f274 in QWidgetPrivate::setVisible(bool) (this=0x5555558c2260, visible=<optimized out>) at kernel/qwidget.cpp:8111
#38 0x00007ffff559c100 in QWidgetPrivate::showChildren(bool) (this=this@entry=0x5555558aa280, spontaneous=spontaneous@entry=false)
    at kernel/qwidget.cpp:8183
#39 0x00007ffff559c16f in QWidgetPrivate::show_helper() (this=this@entry=0x5555558aa280) at kernel/qwidget.cpp:7768
#40 0x00007ffff559f274 in QWidgetPrivate::setVisible(bool) (this=0x5555558aa280, visible=<optimized out>) at kernel/qwidget.cpp:8111
#41 0x0000555555557f66 in main ()
(gdb) 

main.cpp

#include <QApplication>
#include <QSurfaceFormat>

#include <vtkOpenGLRenderWindow.h>
#include <QVTKOpenGLWidget.h>
#include <QVTKOpenGLNativeWidget.h>

#include "mainwindow.h"

int main(int argc, char * argv[]) {
    QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());
    QApplication app( argc, argv );

    MainWindow mainWindow;
    mainWindow.show();


    return app.exec();
}

mainwindow.h

#ifndef TEST_QT_VTK_MAINWINDOW_H
#define TEST_QT_VTK_MAINWINDOW_H

#include <QMainWindow>


QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class QTimer;
class QVTKOpenGLWidget;
class QVTKOpenGLNativeWidget;

class MainWindow : public QMainWindow {
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);

    ~MainWindow() override;

protected:
    void update1();


private:
    Ui::MainWindow *ui;
    QVTKOpenGLNativeWidget *centralWidget;
    //QTimer *timer;
};

#endif //TEST_QT_VTK_MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QTimer>

#include <vtkCamera.h>
#include <QVTKOpenGLNativeWidget.h>
#include <vtkCommand.h>
#include <vtkCubeSource.h>
#include <vtkDataObjectToTable.h>
#include <vtkElevationFilter.h>
#include <vtkGenericOpenGLRenderWindow.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkQtTableView.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkSphereSource.h>
#include <vtkVersion.h>
#include <QVTKOpenGLWidget.h>

MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent), ui(new Ui::MainWindow),
        centralWidget(new QVTKOpenGLNativeWidget(this))
{
    ui->setupUi(this);

    setCentralWidget(centralWidget);

    vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;
    centralWidget->SetRenderWindow(renderWindow);

    vtkNew<vtkNamedColors> colors;

    // Sphere
    vtkNew<vtkSphereSource> sphereSource;
    sphereSource->Update();
    vtkNew<vtkPolyDataMapper> sphereMapper;//    centralWidget->GetRenderWindow()->Render();
    sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
    vtkNew<vtkActor> sphereActor;
    sphereActor->SetMapper(sphereMapper);
    sphereActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData());

    // VTK Renderer
    vtkNew<vtkRenderer> leftRenderer;
    leftRenderer->AddActor(sphereActor);
    leftRenderer->SetBackground(colors->GetColor3d("LightSteelBlue").GetData());
    centralWidget->GetRenderWindow()->AddRenderer(leftRenderer);
    leftRenderer->ResetCamera();

//    centralWidget->GetRenderWindow()->Render();  //this is ok!!!

    renderWindow->AddObserver(vtkCommand::ModifiedEvent, this, &MainWindow::update1);
}


MainWindow::~MainWindow() {
    centralWidget->GetRenderWindow()->RemoveAllObservers();
    delete ui;
}

void MainWindow::update1() {
    centralWidget->GetRenderWindow()->Render();  // Segmentation fault.??? why???
}

mainwindow.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="windowModality">
   <enum>Qt::NonModal</enum>
  </property>
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>553</width>
    <height>448</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QStatusBar" name="statusBar"/>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>553</width>
     <height>28</height>
    </rect>
   </property>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>