
Roman
30.04.2018
18:15:11

Zerogoki
30.04.2018
18:15:41
Как вообще можно понять, на какой строчке горутина зависает?
Я уже вторую неделю с этим пытаюсь разобраться

Roman
30.04.2018
18:16:01

Google

Nikita
30.04.2018
18:16:04

Zerogoki
30.04.2018
18:16:21
У меня там цикл есть, простой for
Да и он больше 255 раз не может выполниться

Robert
30.04.2018
18:16:55
А pprof не помогает?

Zerogoki
30.04.2018
18:17:00
Ибо там счетчик uint8

Robert
30.04.2018
18:17:16
Давай цикл сюда

Roman
30.04.2018
18:17:17

Daniel
30.04.2018
18:17:22

Zerogoki
30.04.2018
18:17:44
for i = 0; i < host.ChannelsCount; i++ {
fmt.Printf("[%s] GetSnapshot start\n", host.IP)
data, err := controller.GetSnapshot(i)
fmt.Printf("[%s] GetSnapshot stop\n", host.IP)
if err != nil {
fmt.Printf("[%s] Failed to get channel %d snapshot: %s\n", host.IP, i + 1, err)
if errCnt >= 5 {
fmt.Printf("[%s] Bad limit\n", host.IP)
return
}
errCnt++
continue
}
errCnt = 0
if _, err := os.Stat(dir); os.IsNotExist(err) {
err = os.MkdirAll(dir, 0777)
check(err)
}
jpegPath := path.Join(dir, fmt.Sprintf("ch_%d.jpg", i + 1))
f, err := os.Create(jpegPath)
if err != nil {
fmt.Println(err)
continue
}
_, err = f.Write(data)
if err != nil {
fmt.Println(err)
continue
}
f.Sync()
f.Close()
fmt.Printf("[%s] Saved snapshot of channel %d\n", host.IP, i + 1)
}

Daniel
30.04.2018
18:20:35
я не вижу, где тут можно встрять
разве что на дисковых операциях, если диск посыпался
оответственно = этот код, скорее всего, не виноват

Google

Robert
30.04.2018
18:21:09
Или GetSnapshot

Roman
30.04.2018
18:21:27
controller.GetSnapshot?

Zerogoki
30.04.2018
18:21:45
func (d Dahua) GetSnapshot(channelId uint8) ([]byte, error) {
var commandMsg bytes.Buffer
cId := new(bytes.Buffer)
binary.Write(cId, binary.LittleEndian, channelId)
commandMsg.Write(GetSnapshotMsg[0])
commandMsg.Write(cId.Bytes())
commandMsg.Write(GetSnapshotMsg[1])
commandMsg.Write(cId.Bytes())
commandMsg.Write(GetSnapshotMsg[2])
d.sock.Write(commandMsg.Bytes())
err, data := d.ReceiveMsg2(cId.Bytes())
return data, err
}

Daniel
30.04.2018
18:22:28
а зачем такой странный (идиотский) паттерн проектирования?

Roman
30.04.2018
18:22:45
d.ReceiveMsg2 скорее всего блокирует

Zerogoki
30.04.2018
18:22:59

Robert
30.04.2018
18:23:03
Тоже за эл

Zerogoki
30.04.2018
18:23:19

Roman
30.04.2018
18:23:59
Там сокет с таймаутом
а обязательно с сокетами работать кстати, нежели с более высокоуровневыми абстракциями?

Daniel
30.04.2018
18:24:01

Zerogoki
30.04.2018
18:24:13
Документации нет в природе
Разве что у китайцев

Roman
30.04.2018
18:24:49
понятно
может он на Write повисает?

Zerogoki
30.04.2018
18:25:21
А там разве можно зависнуть?

Roman
30.04.2018
18:25:26
на Write указан timeout?

Zerogoki
30.04.2018
18:25:41
Он там есть разве? Лол
Вот на dial есть

Google

Roman
30.04.2018
18:26:24
func (c *UnixConn) SetWriteDeadline(t time.Time) error
https://golang.org/pkg/net/#UnixConn.SetWriteDeadline

Zerogoki
30.04.2018
18:27:54
Сформировать запрос на сервер и отправить, потом вызвать функцию для получения и разборки ответа
Ничего лишнего же

Daniel
30.04.2018
18:56:20
о да
два байтбуфера, по разному определенных
7 записей
GetSnapshotMsg хер знает откуда взявшийся
d.sock.Write, но d.ReceiveMsg2(
лишнего, может, и ничего, но явно никто не думал над местом этого метода в нашей жизни

Таир
30.04.2018
19:24:52

Vladimir
30.04.2018
19:29:34

Таир
30.04.2018
19:30:48

Vladimir
30.04.2018
19:31:51

Таир
30.04.2018
19:32:50
В некоторых случаях

Vladimir
30.04.2018
19:34:25
@tairs ну я думаю суть проблемы ты тем не менее уловил

Таир
30.04.2018
19:35:06

Zerogoki
30.04.2018
23:04:45
Как вебсокет-клиент посоветуете?

Olzhas
01.05.2018
02:59:47

FRD Official - Dmitriy
01.05.2018
05:43:51
Как вебсокет-клиент посоветуете?
Если на маке то сафари, на все остальное - хром, как ффоксы не пузырились с "супероптимизациями" - лиса все еще жрет как не в себя

Kirill
01.05.2018
06:05:01
На ретинах ? жрет ? % cpu с момента выхода квантум

Mike
01.05.2018
06:07:03

FRD Official - Dmitriy
01.05.2018
06:11:08

Google

Mike
01.05.2018
06:14:09

FRD Official - Dmitriy
01.05.2018
06:21:29

Mike
01.05.2018
06:24:10
И о чем это должно говорить?
Около 50 вкладок

FRD Official - Dmitriy
01.05.2018
06:27:10
Вот открыл по второй вкладке, подождал пока устаканится

Admin
ERROR: S client not available

Mike
01.05.2018
06:28:01
Факт, жрет больше
Ниже скрин с пруфом, что нихрена.
Мерять по одной вкладке — это как сравнивать размеры хэлловорлдов.
Бессмысленно, но почему-то все так делают

FRD Official - Dmitriy
01.05.2018
06:28:05
Во второй вкладке gmail в обоих. Причем после паузы, когда все от-Jit илось - разница в приросте налицо

Mike
01.05.2018
06:31:22
Яхз, у меня хром даже на одной вкладке уходит сразу в 150
Чтоб он на 50 вкладках жрал хотя бы близко как лиса — ни разу не видел
Но у меня линукс и лиса из найтли-билдов, да
Что там у вас на маках — хз

FRD Official - Dmitriy
01.05.2018
06:54:24

Mike
01.05.2018
11:39:54

Aleksey
01.05.2018
13:14:35
Чятик, подскажи почему envconfig вот тут не отрабатывает? https://github.com/lexfrei/lolnet/blob/Add-useful-cmd/donor/web/webdonor.go#L30
При том, не ругается даже на то, что ключ обязательный. Вот тут вызов https://github.com/lexfrei/lolnet/blob/Add-useful-cmd/cmd/main.go#L28

Pawel
01.05.2018
15:47:50

Google

Aleksey
01.05.2018
16:25:55
И не могу нормально опубликовать потому что не прилично публиковать. А у меня готовы рабочие реципиенты для домашних микротиков и линксисов :(
Так что хелп вонтед :)

Zerogoki
01.05.2018
18:37:00
Как куки достать из http ответа?
http.Response структура
А, я слепой
В доках не увидел func (r *Response) Cookies() []*Cookie

Pawel
01.05.2018
18:42:42

Subbotin
01.05.2018
19:22:08
а знает кто-нить простую либу для го, которая сделаем мне месаджкью?
хочу чтобы я такой указал порт, повесил обработчик входящих сообщений, запустил сервер. потом на клиенте указал адрес:порт сервера и срал туда структурами и они гарантировано бы доставлялись на сервер и не проебывались. ну и там реконекты и вот это всё

Bohdan
01.05.2018
19:27:01

Subbotin
01.05.2018
19:28:39
Они вроде не встраиваемые. Не хочу эти ваши микросервисы. Хочу монолит

Bohdan
01.05.2018
19:30:07

Subbotin
01.05.2018
19:32:09
Микросервисы плотно обмазанные раствором из ансибля слипаются в монолит?

Bohdan
01.05.2018
19:32:47

MrSmeet
01.05.2018
19:33:43
ребят кто работал с веб паком?

?
01.05.2018
19:34:08

Crypt
01.05.2018
19:34:16

MrSmeet
01.05.2018
19:34:47
Нужно работать его заставить, я уже наверное 4 тый день чет делаю и все не понимаю что делаю

Crypt
01.05.2018
19:35:03
я увольняюсь с таким тз

MrSmeet
01.05.2018
19:35:22
У меня есть бэкенд на экспрессе и фронт