Size: a a a

2021 February 19

VG

Vladislav Grubov in Tarantool
ETCD активно юзают, да. И consul для autovshard нужен
источник

AB

Artur Barsegyan in Tarantool
Vladislav Grubov
ETCD активно юзают, да. И consul для autovshard нужен
про ваш кейс я знаю. интересно было что у других еще
источник

АД

Арефьев Дмитрий... in Tarantool
Добрый день. Подскажите, пожалуйста, сейчас делаю пересборку приоекта, и  один методов дает ошибку
источник

АД

Арефьев Дмитрий... in Tarantool
Unhandled error: ...cache/.rocks/share/tarantool/metrics/http_middleware.lua: 75: attempt to index local 'result' (a nil value)
stack traceback:
 /opt/tarantool_cache/.rocks/share/tarantool/http/server.lua: 743: in function 'process_client'
 /opt/tarantool_cache/.rocks/share/tarantool/http/server.lua: 1199: in function </opt/tarantool_cache/.rocks/share/tarantool/http/server.lua: 1198>
 [C
]: in function 'pcall'
 builtin/socket.lua: 1081: in function <builtin/socket.lua: 1079>
источник

АД

Арефьев Дмитрий... in Tarantool
Это с чем может быть связанно?
источник

MF

Michael Filonenko in Tarantool
источник

АД

Арефьев Дмитрий... in Tarantool
metrics 0.7.0
источник

GM

Georgy Moiseev in Tarantool
А у вас обработчик запроса как выглядит?
источник

АД

Арефьев Дмитрий... in Tarantool
Судя по логу падает на local value, err = crud.select(space, {{'==', index, filter}}, {timeout = 5})
источник

АД

Арефьев Дмитрий... in Tarantool
А вызывается по http
источник

АД

Арефьев Дмитрий... in Tarantool
httpd:route({ path = '/v1/cache/readByCombinedIndexAll', method = 'POST' }, http_middleware.v1(handlers.read_value_by_combined_index_all, http_collector))
источник

GM

Georgy Moiseev in Tarantool
вот handlers.read_value_by_combined_index_all можете показать?
источник

АД

Арефьев Дмитрий... in Tarantool
-- Read all values from space by index
local function read_value_by_combined_index_all(self)
   log.info('read_value_by_combined_index_all request: ' .. tostring(self));
   log.info('read_value_by_combined_index_all body: ' .. json.encode(self:json()))

   local args = self:json()
   local space = args.space
   local index = args.index
   args.space = nil
   args.index = nil
   local filter = {}

   for k, v in pairs(args) do
       filter[tonumber(k)] = v
   end

   log.info('read_value_by_combined_index_all space: ' .. space .. ' index: ' .. index .. ' filter: ' .. json.encode(filter))

   local value, err = crud.select(space, {{'==', index, filter}}, {timeout = 5})
   local response
   if err ~= nil then
       response = self:render({json = { filter = filter, message = err }})
       response.status = 400
   elseif #value.rows == 0 then
       response = self:render({json = { filter = filter }})
       response.status = 404
   else
       local vals = {}
       for i=1,#value.rows do
           vals[i] = get_object(value.metadata, value.rows[i])
       end
       log.debug('read_value_by_combined_index_all value: ' .. json.encode(vals))
       response = self:render({
           json = vals
       })
   end
end
источник

GM

Georgy Moiseev in Tarantool
не вижу тут return response
источник

АД

Арефьев Дмитрий... in Tarantool
Так ругается на metrics
источник

АД

Арефьев Дмитрий... in Tarantool
Unhandled error: ...cache/.rocks/share/tarantool/metrics/http_middleware.lua: 75: attempt to index local 'result' (a nil value)
источник

GM

Georgy Moiseev in Tarantool
так metrics пытается вытащить информацию о статусе обработки запроса в хэндлере
источник

GM

Georgy Moiseev in Tarantool
а её нет, так как хэндлер ничего не возвращает
источник

GM

Georgy Moiseev in Tarantool
а должен
источник

GM

Georgy Moiseev in Tarantool
если бы не метрики, оно бы упало на следующем уровне в http
источник