Skip to content

Commit 1034b23

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 0dcf2df + 7873ade commit 1034b23

File tree

9 files changed

+66
-17
lines changed

9 files changed

+66
-17
lines changed

mars/comm/dns/dns.cc

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ struct dnsinfo {
4646
int status;
4747
};
4848

49+
static std::string DNSInfoToString(const struct dnsinfo& _info) {
50+
XMessage msg;
51+
msg(TSF"info:%@p, threadid:%_, dns:@%p, host_name:%_, status:%_", &_info, _info.threadid, _info.dns, _info.host_name, _info.status);
52+
return msg.Message();
53+
}
4954
static std::vector<dnsinfo> sg_dnsinfo_vec;
5055
static Condition sg_condition;
5156
static Mutex sg_mutex;
@@ -231,12 +236,24 @@ bool DNS::GetHostByName(const std::string& _host_name, std::vector<std::string>&
231236
}
232237

233238
if (kGetIPSuc == it->status) {
234-
ips = it->result;
235-
236-
if (_breaker) _breaker->dnsstatus = NULL;
237-
238-
sg_dnsinfo_vec.erase(it);
239-
return true;
239+
if (_host_name==it->host_name) {
240+
ips = it->result;
241+
242+
if (_breaker) _breaker->dnsstatus = NULL;
243+
244+
sg_dnsinfo_vec.erase(it);
245+
return true;
246+
} else {
247+
std::vector<dnsinfo>::iterator iter = sg_dnsinfo_vec.begin();
248+
int i = 0;
249+
for (; iter != sg_dnsinfo_vec.end(); ++iter) {
250+
xerror2(TSF"sg_info_vec[%_]:%_", i++, DNSInfoToString(*iter));
251+
}
252+
if (monitor_func_)
253+
monitor_func_(kDNSThreadIDError);
254+
xassert2(false, TSF"_host_name:%_, it->host_name:%_", _host_name, it->host_name);
255+
return false;
256+
}
240257
}
241258

242259
if (kGetIPTimeout == it->status || kGetIPCancel == it->status || kGetIPFail == it->status) {

mars/comm/dns/dns.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
#include <string>
2525
#include <vector>
2626

27+
#include "boost/function.hpp"
28+
2729
struct DNSBreaker {
2830
DNSBreaker(): isbreak(false), dnsstatus(NULL) {}
2931
bool isbreak;
@@ -43,8 +45,13 @@ class DNS {
4345
void Cancel(const std::string& _host_name = std::string());
4446
void Cancel(DNSBreaker& _breaker);
4547

48+
void SetMonitorFunc(const boost::function<void (int _key)>& _monitor_func) {
49+
monitor_func_ = _monitor_func;
50+
}
4651
private:
4752
DNSFunc dnsfunc_;
53+
boost::function<void (int _key)> monitor_func_;
54+
static const int kDNSThreadIDError = 0;
4855
};
4956

5057

mars/comm/messagequeue/message_queue.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "comm/anr.h"
3434
#include "comm/messagequeue/message_queue.h"
3535
#include "comm/time_utils.h"
36+
#include "comm/xlogger/xlogger.h"
3637
#ifdef __APPLE__
3738
#include "comm/debugger/debugger_utils.h"
3839
#endif
@@ -630,6 +631,8 @@ void RunLoop::Run() {
630631
ScopedLock lock(sg_messagequeue_map_mutex);
631632
sg_messagequeue_map[id].lst_runloop_info.push_back(RunLoopInfo());
632633
}
634+
635+
xinfo_function(TSF"messagequeue id:%_", id);
633636

634637
while (true) {
635638
ScopedLock lock(sg_messagequeue_map_mutex);
@@ -766,7 +769,7 @@ void MessageQueueCreater::__ThreadRunloop() {
766769
lock.unlock();
767770

768771
RunLoop().Run();
769-
messagequeue_id_ = 0;
772+
770773
}
771774

772775
MessageQueue_t MessageQueueCreater::GetMessageQueue() {
@@ -780,7 +783,8 @@ MessageQueue_t MessageQueueCreater::CreateMessageQueue() {
780783

781784
if (0 != thread_.start()) { return KInvalidQueueID;}
782785
messagequeue_id_ = __CreateMessageQueueInfo(breaker_, thread_.tid());
783-
786+
xinfo2(TSF"create messageqeue id:%_", messagequeue_id_);
787+
784788
return messagequeue_id_;
785789
}
786790

mars/libraries/mars_android_sdk/jni/decode_mars_log_file.py.rewriteme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def DecodeBuffer(_buffer, _offset, _outbuffer):
9393
decompressor = zlib.decompressobj(-zlib.MAX_WBITS)
9494
decompress_data = bytearray()
9595
while len(tmpbuffer) > 0:
96-
single_log_len = struct.unpack_from("H", tmpbuffer[0:2])[0]
96+
single_log_len = struct.unpack_from("H", buffer(tmpbuffer, 0, 2))[0]
9797
#decompress_data.extend(base64.decodestring(tmpbuffer[2:single_log_len+2]))
9898
decompress_data.extend(tmpbuffer[2:single_log_len+2])
9999
tmpbuffer[:] = tmpbuffer[single_log_len+2:len(tmpbuffer)]

mars/libraries/mars_android_sdk/jni/longlink_packer.h

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313

1414
/*
15-
* longlink_packer.cpp
15+
* longlink_packer.h
1616
*
1717
* Created on: 2012-7-18
1818
* Author: yerungui
@@ -34,7 +34,24 @@
3434

3535
class AutoBuffer;
3636

37+
/**
38+
* package the request data
39+
* _cmdid: business identifier
40+
* _seq: task id
41+
* _raw: business send buffer
42+
* _packed: business send buffer + request header
43+
*/
3744
void longlink_pack(uint32_t _cmdid, uint32_t _seq, const void* _raw, size_t _raw_len, AutoBuffer& _packed);
45+
46+
/**
47+
* unpackage the response data
48+
* _packed: data received from server
49+
* _cmdid: business identifier
50+
* _seq: task id
51+
* _package_len:
52+
* _body: business receive buffer
53+
* return: 0 if unpackage succ
54+
*/
3855
int longlink_unpack(const AutoBuffer& _packed, uint32_t& _cmdid, uint32_t& _seq, size_t& _package_len, AutoBuffer& _body);
3956

4057
//heartbeat signal to keep longlink network alive
@@ -47,6 +64,10 @@ void longlink_noop_resp_body(AutoBuffer& _body);
4764
uint32_t longlink_noop_interval();
4865

4966
bool longlink_complexconnect_need_verify();
67+
68+
/**
69+
* return: whether the received data is pushing from server or not
70+
*/
5071
bool is_push_data(uint32_t _cmdid, uint32_t _taskid);
5172

5273
#endif // STN_SRC_LONGLINKPACKER_H_

mars/log/crypt/decode_mars_log_file.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def DecodeBuffer(_buffer, _offset, _outbuffer):
9393
decompressor = zlib.decompressobj(-zlib.MAX_WBITS)
9494
decompress_data = bytearray()
9595
while len(tmpbuffer) > 0:
96-
single_log_len = struct.unpack_from("H", tmpbuffer[0:2])[0]
96+
single_log_len = struct.unpack_from("H", buffer(tmpbuffer, 0, 2))[0]
9797
#decompress_data.extend(base64.decodestring(tmpbuffer[2:single_log_len+2]))
9898
decompress_data.extend(tmpbuffer[2:single_log_len+2])
9999
tmpbuffer[:] = tmpbuffer[single_log_len+2:len(tmpbuffer)]

mars/stn/src/zombie_task_manager.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ static bool __compare_task(const ZombieTask& first, const ZombieTask& second)
4343
}
4444

4545
ZombieTaskManager::ZombieTaskManager(MessageQueue::MessageQueue_t _messagequeueid)
46-
: m_asyncreg(MessageQueue::InstallAsyncHandler(_messagequeueid))
46+
: asyncreg_(MessageQueue::InstallAsyncHandler(_messagequeueid))
4747
, net_core_last_start_task_time_(gettickcount()) {}
4848

4949
ZombieTaskManager::~ZombieTaskManager()
5050
{
51-
m_asyncreg.CancelAndWait();
51+
asyncreg_.CancelAndWait();
5252
}
5353

5454
bool ZombieTaskManager::SaveTask(const Task& _task, unsigned int _taskcosttime)
@@ -65,7 +65,7 @@ bool ZombieTaskManager::SaveTask(const Task& _task, unsigned int _taskcosttime)
6565

6666
xinfo2(TSF"task end callback zombie savetask cgi:%_, cmdid:%_, taskid:%_", _task.cgi, _task.cmdid, _task.taskid);
6767

68-
MessageQueue::SingletonMessage(false, m_asyncreg.Get(),
68+
MessageQueue::SingletonMessage(false, asyncreg_.Get(),
6969
MessageQueue::Message((MessageQueue::MessageTitle_t)this,
7070
boost::bind(&ZombieTaskManager::__TimerChecker, this)),
7171
MessageQueue::MessageTiming(3000, 3000));
@@ -171,5 +171,5 @@ void ZombieTaskManager::__TimerChecker()
171171
}
172172
}
173173

174-
if (lsttask.empty()) MessageQueue::CancelMessage(m_asyncreg.Get(), (MessageQueue::MessageTitle_t)this);
174+
if (lsttask.empty()) MessageQueue::CancelMessage(asyncreg_.Get(), (MessageQueue::MessageTitle_t)this);
175175
}

mars/stn/src/zombie_task_manager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class ZombieTaskManager {
6161
void __TimerChecker();
6262

6363
private:
64-
MessageQueue::ScopeRegister m_asyncreg;
64+
MessageQueue::ScopeRegister asyncreg_;
6565
std::list<ZombieTask> lsttask_;
6666
uint64_t net_core_last_start_task_time_;
6767
};

samples/iOS/iOSDemoXlog/PublicComponentV2/decode_mars_log_file.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def DecodeBuffer(_buffer, _offset, _outbuffer):
9393
decompressor = zlib.decompressobj(-zlib.MAX_WBITS)
9494
decompress_data = bytearray()
9595
while len(tmpbuffer) > 0:
96-
single_log_len = struct.unpack_from("H", tmpbuffer[0:2])[0]
96+
single_log_len = struct.unpack_from("H", buffer(tmpbuffer, 0, 2))[0]
9797
#decompress_data.extend(base64.decodestring(tmpbuffer[2:single_log_len+2]))
9898
decompress_data.extend(tmpbuffer[2:single_log_len+2])
9999
tmpbuffer[:] = tmpbuffer[single_log_len+2:len(tmpbuffer)]

0 commit comments

Comments
 (0)