lgi-devs / lgi-devs/lgi

Segmentation fault when using netwok manager

Open
#294 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Lua
Stars
491
Forks
81
PR merge metrics
No merged PRs in 30d

Description

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007ffff7fb2266 in lgi_object_2c () from /usr/lib/lua/5.3/lgi/corelgilua51.so


#0  0x00007ffff7fb2266 in lgi_object_2c () at /usr/lib/lua/5.3/lgi/corelgilua51.so
#1  0x00007ffff7fb4792 in lgi_marshal_2c () at /usr/lib/lua/5.3/lgi/corelgilua51.so
#2  0x00007ffff7fb638c in  () at /usr/lib/lua/5.3/lgi/corelgilua51.so
#3  0x00007ffff7fb465d in lgi_marshal_2c () at /usr/lib/lua/5.3/lgi/corelgilua51.so
#4  0x00007ffff7fb4d17 in  () at /usr/lib/lua/5.3/lgi/corelgilua51.so
#5  0x00007ffff7fb5166 in  () at /usr/lib/lua/5.3/lgi/corelgilua51.so
#6  0x00007ffff792ffff in  () at /usr/lib/liblua5.3.so.5.3
#7  0x00007ffff793d72d in  () at /usr/lib/liblua5.3.so.5.3
#8  0x00007ffff79303b8 in  () at /usr/lib/liblua5.3.so.5.3
#9  0x00007ffff792f710 in  () at /usr/lib/liblua5.3.so.5.3
#10 0x00007ffff793073b in  () at /usr/lib/liblua5.3.so.5.3
#11 0x00007ffff792b91a in lua_pcallk () at /usr/lib/liblua5.3.so.5.3
#12 0x00007ffff7fb5927 in  () at /usr/lib/lua/5.3/lgi/corelgilua51.so
#13 0x00007ffff738e0fb in  () at /usr/lib/libffi.so.8
#14 0x00007ffff738e758 in  () at /usr/lib/libffi.so.8
#15 0x00007ffff75855f4 in  () at /usr/lib/libgio-2.0.so.0
#16 0x00007ffff758562d in  () at /usr/lib/libgio-2.0.so.0
#17 0x00007ffff7ddb163 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#18 0x00007ffff7e319e9 in  () at /usr/lib/libglib-2.0.so.0
#19 0x00007ffff7dda6a3 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#20 0x0000555555568ecb in main ()

Snippest:

for _, device in ipairs(devices) do
   if device:get_device_type() == "WIFI" then
        device.on_state_changed = function(device)
           local state = device:get_state()
           local state_reason = device:get_state_reason()

          if (state == "UNAVAILABLE" or state == "FAILED" or state == "DEACTIVATING")
             and state_reason ~= "NEW_ACTIVATION" then
             self:emit_signal("wireless_state", false)
          elseif state ==  "DISCONNECTED" and state_reason ~= "NEW_ACTIVATION" then
             gtimer { timeout = 5, autostart = true, call_now = false, single_shot = true, callback = function()
                self:scan_access_points()
             end }
          elseif state == "ACTIVATED" then
              local active_access_point = device:get_active_access_point()
              self:scan_access_points()
              self:emit_signal("wireless_state", true, ssid_to_utf8(active_access_point))
          end
   end
end

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the SIGSEGV with the provided network-manager callback snippet and inspect the lgi_object_2c and lgi_marshal_2c frames in the Lua/GObject binding path. Determine which callback or value marshalling step triggers the crash; done means the example no longer segfaults during the network-manager state change.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.