Size: a a a

2020 August 10

DP

Daniel Podolsky in Go-go!
Vadim Inshakov
обошел просто принудительным очищением heap перед попытками загрузить новый плагин. работает)
нужны подробности
источник

VI

Vadim Inshakov in Go-go!
Daniel Podolsky
нужны подробности
plug, _ := plugin.Open(path)
plug = nil
runtime.GC()
plug, err := plugin.Open(path)
[нормальный код]
источник

DP

Daniel Podolsky in Go-go!
Vadim Inshakov
plug, _ := plugin.Open(path)
plug = nil
runtime.GC()
plug, err := plugin.Open(path)
[нормальный код]
очень мне это странно. если оно работает - надо разбираться, почему
источник

DP

Daniel Podolsky in Go-go!
скорее всего - старая версия продолжает болтаться в памяти
источник

с

сонная википедия... in Go-go!
вероятно вся память выделенная в результате загрузки и исполнения плагина(но не непосредственно самого плагина) освободилась
источник

VI

Vadim Inshakov in Go-go!
Daniel Podolsky
очень мне это странно. если оно работает - надо разбираться, почему
ан нет, уже не работает)
источник

VI

Vadim Inshakov in Go-go!
сонная википедия
вероятно вся память выделенная в результате загрузки и исполнения плагина(но не непосредственно самого плагина) освободилась
тоже так думал, что-то не то 😐
источник

ЕО

Евгений Омельченко... in Go-go!
Vadim Inshakov
plug, _ := plugin.Open(path)
plug = nil
runtime.GC()
plug, err := plugin.Open(path)
[нормальный код]
Оно работать не может так-то, го не вызывает dlclose вообще
источник

ЕО

Евгений Омельченко... in Go-go!
С dlclose могло бы работать, но иногда и очень редко
источник

ЕО

Евгений Омельченко... in Go-go!
https://www.man7.org/linux/man-pages/man3/dlopen.3.html

A successful return from dlclose() does not guarantee that the
      symbols associated with handle are removed from the caller's address
      space.  In addition to references resulting from explicit dlopen()
      calls, a shared object may have been implicitly loaded (and reference
      counted) because of dependencies in other shared objects.  Only when
      all references have been released can the shared object be removed
      from the address space.
источник

VI

Vadim Inshakov in Go-go!
Евгений Омельченко
https://www.man7.org/linux/man-pages/man3/dlopen.3.html

A successful return from dlclose() does not guarantee that the
      symbols associated with handle are removed from the caller's address
      space.  In addition to references resulting from explicit dlopen()
      calls, a shared object may have been implicitly loaded (and reference
      counted) because of dependencies in other shared objects.  Only when
      all references have been released can the shared object be removed
      from the address space.
очень, очень печально. буквально весь день в топку и инструмент уже не будет таким удобным, как задумывалось) ладно, поживем без плагинов
источник

ЕО

Евгений Омельченко... in Go-go!
Vadim Inshakov
очень, очень печально. буквально весь день в топку и инструмент уже не будет таким удобным, как задумывалось) ладно, поживем без плагинов
А что вам именно нужно от плагинов? Может легче заюзать голуа какой-нибудь?
источник

AQ

Alex Q in Go-go!
Колеги,  кто нибудь пользовался фреймворком Fiber - насколько актуально начинать на нем пет-проект, насколько вообще актуальны фреймворки в го и стоит ли их использовать при переходе с питона?
источник

VI

Vadim Inshakov in Go-go!
Евгений Омельченко
А что вам именно нужно от плагинов? Может легче заюзать голуа какой-нибудь?
ну, я хотел чтобы хуки для сервера подгружались без простоя. не сказать что особо нужно, но хотелось. голуа - это что, интерпретатор луа внутри приложения?
источник

DP

Daniel Podolsky in Go-go!
Alex Q
Колеги,  кто нибудь пользовался фреймворком Fiber - насколько актуально начинать на нем пет-проект, насколько вообще актуальны фреймворки в го и стоит ли их использовать при переходе с питона?
фреймворки у нас все так себе, за отсутствием развитых средств обобщенного программирования
источник

ЕО

Евгений Омельченко... in Go-go!
Vadim Inshakov
ну, я хотел чтобы хуки для сервера подгружались без простоя. не сказать что особо нужно, но хотелось. голуа - это что, интерпретатор луа внутри приложения?
Лучше поднять тогда nginx перед приложением, поднимать новую версию, балансировать туда трафик, а затем отключать старую по мере истечения таймаутов или работы сессий старых
источник

DP

Daniel Podolsky in Go-go!
Vadim Inshakov
ну, я хотел чтобы хуки для сервера подгружались без простоя. не сказать что особо нужно, но хотелось. голуа - это что, интерпретатор луа внутри приложения?
1. есть техники, позволяющие передать коннект другому приложению. и это приложение можно запускать, останавливать, и все вот это вот. может - вам это нужно?
2. да, это lua-машина в go
источник

DP

Daniel Podolsky in Go-go!
Евгений Омельченко
Лучше поднять тогда nginx перед приложением, поднимать новую версию, балансировать туда трафик, а затем отключать старую по мере истечения таймаутов или работы сессий старых
nginx не нужен
источник

ЕО

Евгений Омельченко... in Go-go!
Daniel Podolsky
nginx не нужен
Да мало что вообще нужно
источник

AQ

Alex Q in Go-go!
Daniel Podolsky
фреймворки у нас все так себе, за отсутствием развитых средств обобщенного программирования
Спасибо, тогда попробую на стандартной библиотеке выехать
источник