Michael
такое ощущение, что почему-то accept() не вызывается.
Artem
http.HandlerFunc(s.requestHandler) а что вообще должна делать s.requestHandler?
Michael
обрабатывать запрос.
Michael
чудеса, отключил вебсервер, который слушал на 80 порту и оставил только pprof и на 443 . Заработало!
Artem
обрабатывать запрос.
и она вызывается?
Michael
Она не вызывается. в том то и проблема.
Michael
но на 80 порту мне тоже надо отвечать.
Artem
Она не вызывается. в том то и проблема.
я уже пофиксил у вас все работает. :)
Michael
ошибка то осталась. просто я экспериментирую и отключение одного вебсервера помогло почему-то.
Michael
Можете пояснить, как именно он это делал?
Artem
Можете пояснить, как именно он это делал?
в режиме ванга мода сложно, можно просто добавить обработку ошибки if err, ok := err.(net.Error); ok && err.Timeout() и посмотреть что вывалится
Michael
Вот код: https://pastebin.com/SXwMzkUz
Artem
Вот код: https://pastebin.com/SXwMzkUz
это не особо меняет ситуацию, без запуска кода разбирать логику сложно, потому и шарить его лучше в playground. Если валится таймаут, то просто не вызывается обработчик почему -потому, что не получает запрос. Значит нужно посмотреть кто этот запрос получает, кто слушает порт
🏁Александр
запись дерева O_o
🏁Александр
ой, в смысле "Одна запись из трех"
Aleksandr
знает кто как в goland глубину дебага увеличить? а то при примерно 5 уровнях уже не показывает внутренности
Pawel
delve?
Aleksandr
да
Pawel
проверил в goland - без проблем любой уровень, всё показывает правильно.
Pawel
буду честен: за эрлэнг трут серьёзные мужи, вызывающие доверие и уважение. За петон - в основном хипсторы и школота. Ну и на эрлэнге же не только вацап.
Pawel
на эрлэнге программируются коммуникации. на Го тоже есть такие проекты. на неполноценных языках типа петона (да, я троллю) ничего подобного нет
Wingman
Вацап херня
Wingman
На эрланге все опсосы
Pawel
вот именно
Andrey
А кто чем дебажит свои сервисы? На сях удобно gdb заатачился к процессу и делаешь что нужно.
Pawel
На эрланге все опсосы
на Го тоже есть, вот очень крутой мужык я считаю https://www.youtube.com/watch?v=HoEn7lXNQOU
Wingman
на Го тоже есть, вот очень крутой мужык я считаю https://www.youtube.com/watch?v=HoEn7lXNQOU
Это какая то стартапная хрень, а я про внутренности всяких ss7, обработки миллиардов тех же СМС, и прочие внутренности
Wingman
Долгие годы у 99% опсосов все это на эрланге
Aleksandr
уровень 7-8
Pawel
Нет идей. Попробовал ещё раз - не могу что называется воспроизвести. 10-15 левель - всё показывает правильно. Видимо от контекста как то зависит
Pawel
Долгие годы у 99% опсосов все это на эрланге
мне говорили на конфе по эрлэнгу, что примерно половина на нём, другая на С/С++
Pawel
Нет идей. Попробовал ещё раз - не могу что называется воспроизвести. 10-15 левель - всё показывает правильно. Видимо от контекста как то зависит
может, поробовать включить import _ "runtime/cgo" чтобы стек был пожирнее, а то может банально мозгов не хватает для отображения памяти?
Антон
человек который скинул мне ссылку на Auth Boss на гитхабе, дай тебе Бог здоровья, счастья, здоровья от души. Тут описан каждый шаг и все понятно 👍
Dmitriy / დიმიტრი
Привет. У меня есть биндинги на Go к либе на плюсах. Я собираюсь создать докер-контейнер, который будет выкачивать либу на плюсах компилить ее, а потом компилировать сорцы на Go с использованием биндингов. Вопрос: как мне сделать так, что бы либа на плюсах выкачивалась и собиралась только раз т.е. сохранялась слоем ?
Dmitriy / დიმიტრი
просто она собирается полчаса и жрет 8гб оперативы
Alexander
Если она скачивается и компилится отдельной командой RUN в Dockerfile то она будет кэшироваться автоматически. Главное, не менять то, что до этой команды.
Aleksandr
ну как бы очевидно
Alexander
Еще можно использовать multi-stage build. Это когда в Dockerfile несколько инструкций FROM
Dmitriy / დიმიტრი
просто она загружается curl'ом и я как-то не уверен, что он определит что не надо ее пересобирать заново
Alexander
А почему докер решит, что её _надо_ пересобирать?
Aleksandr
просто она загружается curl'ом и я как-то не уверен, что он определит что не надо ее пересобирать заново
если слой собран один раз, то пересобираться он не будет, если не указать явно
Dmitriy / დიმიტრი
то есть команду RUN он выполняет только раз в любом случае?
Aleksandr
Dmitriy / დიმიტრი
понятно, спасибо)
Илья
я бы собрал base контейнер отдельно, типо alpine + glibc+ твоя либа, и твой контейнер с него начинал, хотя multistage тоже покатит
Илья
на CI контейнеры пересобираются с нуля (по крайней мере у меня так), так что кэш не работает
Илья
но зачем?
кеш можно случайно снести
Co.In
Привет народ. Что и куда нужно добавить чтоб при компиляции находило сишные заголовки? package cl // #include "cl.h" import "C" import ( "unsafe" ) Падает с таким фаталом fatal error: cl.h: No such file or directory Поискав на машине где лежит сей хедер /usr/include/CL/cl.h
Anonymous
ну дык <CL/cl.h>
Co.In
пакет не мой просто github.com/samuel/go-opencl Как понимаю править чужые пакеты не лучшая практика. Думал что можно как-то добавить папку конкретно, чтоб оно иклюды в ней искало.
.
Такой вопрос по стандартной либе databases/sql : Query() и Exec() защищают от инъекций?
Pawel
нет
Timur
Может быть😂
.
Так да или нет?
Anonymous
Голоса разделились ))
Pawel
Yes.
каким образом она защищает, если запрос передаётся в виде строки?)) sql парсит что ли?
Pawel
Например http://go-database-sql.org/prepared.html
это для сервера, и далеко не для всех. то есть там сервер может теоретически защитить
Pawel
а не либа
Pawel
для защиты от инжекций надо использовать либу sql-билдера
Nik
Народ, в каком случае используя read на созданный слайс размера m, может вычитываться меньше?
.
Например http://go-database-sql.org/prepared.html
Это Prepare Statements, я про обычный Query() & Exec()
Nik
есть tcpConn. Вокруг него делаю буфер rd := bufio.NewReaderSize(client.readConn, 10*1024*1024) Знаю размер сообщения(он фиксирован) tempData := make([]byte, m)
Nik
n, err := rd.Read(tempData)
Nik
и n !=m
Nik
(может буфер врет, и нельзя ему верить)
Anonymous
это как?
Query("SELECT $1", "любой текст") - само всё экранирует
.
Окей, а если у нас там не текст, а int?