MXLTN
я нашел что это происходит изза использования одного конекта в разных рутинах
MXLTN
кто-то?
MXLTN
тут нашел что это бага
MXLTN
https://github.com/go-sql-driver/mysql/issues/450
MXLTN
но у меня все равно она есть(
MXLTN
хотя написано что закрыта
MXLTN
памагите плиз
🏳️ Phil
http://go-database-sql.org/connection-pool.html типа вот сюда наверное
Мерль
хотя написано что закрыта
А какая версия go у вас?
Bald
там же пул внутренний
Bald
главное не забыть Stmt закрыть после операции
MXLTN
главное не забыть Stmt закрыть после операции
его надо както явно закрывать?
Bald
Stmt.Close() Лучше в defer
Vladimir
не лучше в defer, а обязательно в defer :)
Vladimir
иначе прийдется совать во много мест.
Anton
добрый день
Anton
http://prntscr.com/dgdu1g
Anton
имею следующую структуру проекта
Anton
app.go - файл, в котором я пытаюсь импортировать github.com/go-sql-driver/mysql
Anton
однако go его не находит
Anton
где я свернул не туда?
Slava
а что за ошибку выводит?
Anton
секунду
Anton
а GOPATH должен в src смотреть или нет?
Anton
он же просто в папку проекта должен смотреть, да?
Anton
ошибка такая: http://prntscr.com/dgdxsh
ros
GOPATH на уровень выше src
Slava
да, src внутри gopath
Anton
тогда у меня все верно
Slava
то что ты показываешь это не ошибка го, а что-то из твоего редактора
Slava
возможно ты в нём не настроил gopath
Anton
хммм...ну ладно, спасибо, буду с эти разбираться)
Slava
если это IDEA то в слак чате есть разработчики этого плагина, они всегда рады помочь
Anton
понял, спасибо большое!
Anton
panic serving runtime error: invalid memory address or nil pointer dereference скажите, пожалуйста, о чем говорит эта ошибка?
Anton
возникает на r.parseForm()
Slach
r = nil скорее всего
Anton
это странно
Anton
я пытаюсь открыть урл, и она возникает
Anton
в r хоть что-то должно быть, я думаю
Slava
выложи полный стектрейс
Slava
чтобы было понятно где возникает паника
Anton
2016/12/07 14:33:41 http: panic serving [::1]:50715: runtime error: invalid memory address or nil pointer dereference goroutine 18 [running]: net/http.(*conn).serve.func1(0xc04203a280) C:/Go/src/net/http/server.go:1491 +0x131 panic(0x6d4b00, 0xc042008080) C:/Go/src/runtime/panic.go:458 +0x251 html/template.(*Template).escape(0x0, 0x0, 0x0) C:/Go/src/html/template/template.go:79 +0x4b html/template.(*Template).Execute(0x0, 0x87d400, 0xc0421025b0, 0x0, 0x0, 0xc042080e10, 0x5) C:/Go/src/html/template/template.go:101 +0x36 main.render(0x880b80, 0xc0421025b0, 0x725fbe, 0x5) C:/Users/Anton/PhpstormProjects/go/src/github.com/user/server/app.go:12 +0x152 main.index(0x880b80, 0xc0421025b0, 0xc0420c40f0) C:/Users/Anton/PhpstormProjects/go/src/github.com/user/server/app.go:23 +0x51 net/http.HandlerFunc.ServeHTTP(0x752ce8, 0x880b80, 0xc0421025b0, 0xc0420c40f0) C:/Go/src/net/http/server.go:1726 +0x4b net/http.(*ServeMux).ServeHTTP(0x8a0340, 0x880b80, 0xc0421025b0, 0xc0420c40f0) C:/Go/src/net/http/server.go:2022 +0x86 net/http.serverHandler.ServeHTTP(0xc04203a200, 0x880b80, 0xc0421025b0, 0xc0420c40f0) C:/Go/src/net/http/server.go:2202 +0x84 net/http.(*conn).serve(0xc04203a280, 0x881100, 0xc04205c400) C:/Go/src/net/http/server.go:1579 +0x4be created by net/http.(*Server).Serve C:/Go/src/net/http/server.go:2293 +0x454 2016/12/07 14:33:41 http: panic serving [::1]:50716: runtime error: invalid memory address or nil pointer dereference goroutine 19 [running]: net/http.(*conn).serve.func1(0xc04203b180) C:/Go/src/net/http/server.go:1491 +0x131 panic(0x6d4b00, 0xc042008080) C:/Go/src/runtime/panic.go:458 +0x251 html/template.(*Template).escape(0x0, 0x0, 0x0) C:/Go/src/html/template/template.go:79 +0x4b html/template.(*Template).Execute(0x0, 0x87d400, 0xc042102680, 0x0, 0x0, 0xc04212bad0, 0x5) C:/Go/src/html/template/template.go:101 +0x36 main.render(0x880b80, 0xc042102680, 0x725fbe, 0x5) C:/Users/Anton/PhpstormProjects/go/src/github.com/user/server/app.go:12 +0x152 main.index(0x880b80, 0xc042102680, 0xc0420c41e0) C:/Users/Anton/PhpstormProjects/go/src/github.com/user/server/app.go:23 +0x51 net/http.HandlerFunc.ServeHTTP(0x752ce8, 0x880b80, 0xc042102680, 0xc0420c41e0) C:/Go/src/net/http/server.go:1726 +0x4b net/http.(*ServeMux).ServeHTTP(0x8a0340, 0x880b80, 0xc042102680, 0xc0420c41e0) C:/Go/src/net/http/server.go:2022 +0x86 net/http.serverHandler.ServeHTTP(0xc04203a200, 0x880b80, 0xc042102680, 0xc0420c41e0) C:/Go/src/net/http/server.go:2202 +0x84 net/http.(*conn).serve(0xc04203b180, 0x881100, 0xc042130080) C:/Go/src/net/http/server.go:1579 +0x4be created by net/http.(*Server).Serve C:/Go/src/net/http/server.go:2293 +0x454
Slava
у тебя template не инициализирован
Slava
покажи код в app:23?
Anton
http://prntscr.com/dgewef
Slava
не игнорируй ошибку в render
Slava
возможно у тебя ParseFiles возвращает nil, err
Mikhail
вот кстати это проблема кажется идет из кучи всяких туториалов, где игнорят ошибку и пишут рядом коммент // never do this way in real-world application
Slava
да, ошибки никогда нельзя игнорировать, хорошо что go vet не даёт этого делать
Alexey
errcheck же
Anton
Понял, большое спасибо) Пишу действительно по туториалам и мог лажануться
Nikita
Всем привет, не подскажите где можно глянуть пример структуры n-ary дерева и способ его заполнения?
Anonymous
Всем привет. Кто-то же сталкивался с ошибкой при работе с MySQL? При попытке запуска, go ругается: "cannot find package "github.com/go-sql-driver/mysql" "
Slach
go get github.com/go-sql-driver/mysql уже отменили?
Anonymous
Я уже понял, что не так. Теперь только go get ... go tool: no such file to compile.
Anonymous
such tool*
Anonymous
Теперь после go run main.go, go tool: no such tool:compile. Я все-таки что-то сломал?
Alexey
да
Alexey
go env
Anonymous
GOROOT тычет на /usr/local/go
Alexey
Целиком скиньте
Anonymous
Целиком скиньте
Я уже снес и начисто ставлю это все. Сейчас отпишусь, сделал все правильно или руки бы мне отрезать
Anonymous
Целиком скиньте
О, вроде теперь только к БД не хочет коннектиться, а так все ок.
Aleksey
Всем привет, есть у кого-нибудь опыт работы с мессенджерами. Я разрабатываю один в обучающих целях, хотелось бы посоветоваться насчет реализации real-time обновлений
Alexey
да, давай конкретные вопросы
Aleksey
Собственно как лучше передавать на конкретный клиент новые сообщения от его списка контактов?
Aleksey
И вообще, можно ли сделать это масштабируемо?
Aleksey
То есть, есть следующие варианты: 1) long polling 2) websockets 3) периодическая отправка запросов С первыми двумя непонятно как реализовать обновление между несколькими серверами.
ros
сообщать всем остальным сервакам на каком клиент и s2s гонять
Slava
протокол передачи вообщем-то не самое важное
Slava
тем более всегда нужно деградировать с websocket до лонгполлинга, если клиент не поддерживает вебсокеты/провайдер блокирует
Slava
данные хранятся не в памяти веб сервера, а в некой субд, память которой шарится между ними
Slava
соответственно как только клиент подключается к конкретному веб сервису(по вебсокету, лонгполлингку, рест запросу или ещё как), веб сервис запрашивает новые сообщения для пользователя у базы данных
Slava
в случае с сообщениями очень хорошо шардить базы данных по пользователям
Slava
плюс в случае с сообщениями не очень важен лаг от слейвов, поэтому читать можно и с них
Slava
плюс в случае с сообщениями, я думаю не так уж важна durability (ну или важна, это вам решать), поэтому можно ещё и асинхронную репликацию использовать
Aleksey
А вот после подключения к серверу, как сервер понимает, что пользователю пришли новые сообщения?