diff --git a/.gitignore b/.gitignore
index 987709c..7c827b5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,3 +60,6 @@ HeartTests/cmake_install.cmake
 cmake_install.cmake
 docs/
 Heart/heart_global.h
+
+# git 
+*.orig
diff --git a/Heart/AbstractSpace/abstractnode.cpp b/Heart/AbstractSpace/abstractnode.cpp
index 839a0ea..f614d6c 100644
--- a/Heart/AbstractSpace/abstractnode.cpp
+++ b/Heart/AbstractSpace/abstractnode.cpp
@@ -502,7 +502,7 @@ bool AbstractNode::registerSocket(QAbstractSocket *socket, const HostAddress* cl
     _connectionsMutex.unlock();
 
     connect(info, &AbstractNodeInfo::sigReadyRead,
-            this, &AbstractNode::avelableBytes);
+            this, &AbstractNode::avelableBytes, Qt::DirectConnection);
 
     // using direct connection because socket clear all data of ip and port after disconnected.
     connect(info, &AbstractNodeInfo::statusChaned,
diff --git a/HeartTests/AbstractSpace/bigdatatest.cpp b/HeartTests/AbstractSpace/bigdatatest.cpp
index cf75bb9..246a579 100644
--- a/HeartTests/AbstractSpace/bigdatatest.cpp
+++ b/HeartTests/AbstractSpace/bigdatatest.cpp
@@ -57,6 +57,7 @@ public:
     }
 
     const BigPackage* getData() const {
+        QMutexLocker locker(&_mData);
         return data;
     }
 
@@ -66,12 +67,15 @@ protected:
 
         if (pkg->cmd() == BigPackage::command()) {
 
+            _mData.lock();
             data->copy<BigPackage>(*pkg);
+            _mData.unlock();
             sendData(data, sender);
         }
     }
 
 private:
+    mutable QMutex _mData;
     BigPackage *data = nullptr;
 };