netch80: (Default)
[personal profile] netch80
Обычный рабочий вечер, переписка в slack после того, как некий запрос завесил сервер так, что Ctrl+C из локальной консоли не помогло.

user1: почему запрос `select count time/5 from sesslog` убил кдб сервер?
user2: http://code.kx.com/wiki/Reference/Slash
user3: я подозреваю что user1 хотел разделить на 5))
user2: 1. приоритет операций строго справа налево. если нет скобок
user2: 2. для деления используется %, а не /
user2: Или div если целочисленное
user1: почему убилось kdb
user2: 3. если нужно считать кол-во записей, используйте i вместо имени столбца.
VN: user2, ты как на русском форуме - отвечаешь на что угодно, кроме исходного вопроса
user2: Валик, я ткнул носом в доку
VN: user2 блин. Можешь объяснить, при чём тут over к глобальному заклину процесса?
user1: хорошо.
user1: что из этого http://code.kx.com/wiki/Reference/Slash
user1: и почему
user3: потому что твой овер рекурсивно выжрал всю доступную память процессу
VN: неправда.
VN: я вот тут воспроизвожу - память не меняется, хотя процесс жрёт 100%
user2: over: The iteration form of / terminates when either: (1) two successive results agree within comparison tolerance or (2) the result matches the initial input. The latter will save you from some infinite cycles but not all
user2: converge: When / is following a monadic function f/[g;x] will apply f to x until g returns 0b
VN: user2, ты программист. Я это понял.
guru4: а вы смотрели, во что он скомпилился? на K
guru4: (,`x)!,((/;`time);#:;5)
guru5: а ну да, теперь все понятно
(под репликой чужой смайл типа "слёзы из глаз от смеха")
user1: и это зацикливает инстанс?
guru4: да
user1: и какое поведение будет если добавить нитей?
user1: как, кроме как административно, избежать отказа в обслуживании
guru5: а в нашем интерпретаторе подсчет инструкций и всегда отдается yield в интерпретатор :)
guru4: это вежливый, хороший интерпретатор
guru4: а К просто крутит цикл

Картинка в тему.

Date: 2017-01-13 09:02 am (UTC)
dadv: (Default)
From: [personal profile] dadv
Папа, а ты сейчас с кем разговаривал? (q)
Кто такой K? Что значит (,`x)!,((/;`time);#:;5) и почему?

И почему не было реакции на Ctrl-C aka SIGINT?

Картинка не отдаётся (403 Forbidden)
Edited Date: 2017-01-13 09:04 am (UTC)

Date: 2017-01-13 10:39 am (UTC)
gegmopo4: (Default)
From: [personal profile] gegmopo4
> И почему не было реакции на Ctrl-C aka SIGINT?

Ну, например, обработчик SIGINT просто выставляет флаг, который проверяется в цикле интерпретатора перед каждой (или каждой N-той) инструкцией, но до этого дело не доходит, застряёт на внутреннем цикле.

В Питоне, например, такое бывает.

Date: 2017-01-13 09:22 am (UTC)
dadv: (Default)
From: [personal profile] dadv
Какой-то профессиональный юмор (c)

Date: 2017-01-13 10:13 am (UTC)
5ht: (Default)
From: [personal profile] 5ht
Я Гуру5 если шо :-)

Profile

netch80: (Default)
netch80

August 2017

S M T W T F S
  12345
67 89101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 20th, 2017 09:15 pm
Powered by Dreamwidth Studios