Project

General

Profile

unexist.dev

Assorted tidbits and projects

Bug #299

Subtler: ERROR: undefined method `name' for nil:NilClass

Added by Lukas Schreiner over 12 years ago. Updated over 12 years ago.

Status:
Not a bug
Priority:
Urgent
Category:
Subtler
Target version:
-
Start date:
08/15/2012
Due date:
% Done:

0%

Estimated time:
0.00 h

Description

When i'm using subtler like this:

[0][20:38:36] mono@laptLukasGentoo ~/.l/s/s/contrib $ subtler -c -l

I will get the error message '>>> ERROR: undefined method `name' for nil:NilClass'

Stacktrace:

>>> ERROR: undefined method `name' for nil:NilClass
/usr/lib64/ruby/site_ruby/1.9.1/subtle/subtler/runner.rb:276:in `printer'
/usr/lib64/ruby/site_ruby/1.9.1/subtle/subtler/runner.rb:256:in `call_or_print'
/usr/lib64/ruby/site_ruby/1.9.1/subtle/subtler/runner.rb:264:in `block in handle_result'
/usr/lib64/ruby/site_ruby/1.9.1/subtle/subtler/runner.rb:263:in `each'
/usr/lib64/ruby/site_ruby/1.9.1/subtle/subtler/runner.rb:263:in `handle_result'
/usr/lib64/ruby/site_ruby/1.9.1/subtle/subtler/runner.rb:239:in `handle_command'
/usr/lib64/ruby/site_ruby/1.9.1/subtle/subtler/runner.rb:171:in `run'
/usr/bin/subtler:17:in `<main>'

Ruby-Version: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
Subtle-Version: subtle 0.11.3231
Subtler-Version: subtler 0.11.3231
X11-Version: X.Org X Server 1.12.3

What's going wrong?
Do you need my configuration file?

Thank you.

subtle_root_window.txt (34 KB) subtle_root_window.txt Lukas Schreiner, 09/01/2012 05:07 PM

History

#1 Updated by Christoph Kappel over 12 years ago

Hum, does this happen all the time? Looks like there is a stale client left in the list and subtler fails to fetch the name info.

#2 Updated by Lukas Schreiner over 12 years ago

Christoph Kappel wrote:

Hum, does this happen all the time? Looks like there is a stale client left in the list and subtler fails to fetch the name info.

Hi. Yes this happen all the time.

#3 Updated by Lukas Schreiner over 12 years ago

I don't know whether it helps or not, but i will add it simply.
A friend of me is using subtle too so we checked some things.
A clean startup with default subtle configuration does not resolve the problem.
And when i do "subtler -t -a bug299" then the 'bug299'-entry should be visible
with a "subtler -t -l", right? That's what's my friend can see. But on my
system this does not work. The result will be still empty (no error message).

Some weeks ago i've tried with my little ruby knowledge to try and catch the nil's.
But the crazy thing: all entries are nil - jf i've done it right.
It says me that the entry is nil for every open window. That is crazy, or?

An update does not help me - i've tried it yesterday.

Best regards,
Lukas

#4 Updated by Christoph Kappel over 12 years ago

Weird, I need more information about your environment. Which ruby version and are you using RVM/rbench?

#5 Updated by Lukas Schreiner over 12 years ago

Christoph Kappel wrote:

Weird, I need more information about your environment. Which ruby version and are you using RVM/rbench?

Hello Christoph,

as i've written in report:
Ruby-Version: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] on
Gentoo with Linux 3.3.4-ck.

What is RVM/rbench? If it is "Recoverable Virtual Memory (used by Coda)", than: no (that's the only thing i've found in portage ;)).

#6 Updated by Christoph Kappel over 12 years ago

Lukas Schreiner wrote:

What is RVM/rbench? If it is "Recoverable Virtual Memory (used by Coda)", than: no (that's the only thing i've found in portage ;)).

Close enough. ;)

Both can be used to install ruby into your home directory without a system wide install. They set symlinks etc. for you and provide some helpers to maintain different ruby versions.

Does your friend use the same distro and versions? Otherwise I have to check this specific ruby version tomorrow.

#7 Updated by Lukas Schreiner over 12 years ago

Christoph Kappel wrote:

Does your friend use the same distro and versions? Otherwise I have to check this specific ruby version tomorrow.

No. I know that he switched to another distro. I think it is arch linux.
But the ruby version is the same.

Thank you!

#8 Updated by Christoph Kappel over 12 years ago

After some tests I see no problems here, is this the vanilla subtler or does it include your changes?

Also, can you post me the result of following in e.g. irb?

require "subtle/subtlext" 
p Subtlext::Client.all.first.views
p Subtlext::View.current

#9 Updated by Lukas Schreiner over 12 years ago

Christoph Kappel wrote:

After some tests I see no problems here, is this the vanilla subtler or does it include your changes?

Also, can you post me the result of following in e.g. irb?

[...]

No i've recompiled the subtler and subtle in the new version. So my changes are not included anymore.
Sure i can post you the result:

irb(main):001:0> require "subtle/subtlext" 
=> true
irb(main):002:0> p Subtlext::Client.all.first.views
[]
=> []
irb(main):003:0> p Subtlext::View.current
nil
=> nil

#10 Updated by Christoph Kappel over 12 years ago

Hm funny, didn't expect something like that. Please post more output. ;)

pequire "subtle/subtlext" 
Subtlext::Client.list.each { |c| p "%s [ %s ] " % [ c, c.tags.join(",") ] }
Subtlext::View.list.each { |v| p "%s [ %s ] " % [ v, v.tags.join(",") } ] }

#11 Updated by Lukas Schreiner over 12 years ago

Yes of course ;)

irb(main):002:0> require "subtle/subtlext" 
=> true
irb(main):003:0> Subtlext::Client.list.each { |c| p "%s [ %s ] " % [ c, c.tags.join(",") ] }
"subtle [  ] " 
"subtle [  ] " 
"subtle [  ] " 
"subtle [  ] " 
"subtle [  ] " 
"subtle [  ] " 
"subtle [  ] " 
=> [subtle, subtle, subtle, subtle, subtle, subtle, subtle]
irb(main):005:0> Subtlext::View.list.each { |v| p "%s [ %s ] " % [ v, v.tags.join(",") ] }
=> []

#12 Updated by Christoph Kappel over 12 years ago

So subtle can neither fetch the information about your clients nor about your views. Is subtle running at all? ;)

Can you install xprop, start it, point to the root window and post the output?

#13 Updated by Lukas Schreiner over 12 years ago

Ha.. that's funny.
But subtle is definitely running ;)

I've put on the output of xprop as attachment.
I hope it was the right target of xprop.

#14 Updated by Christoph Kappel over 12 years ago

Yep, the target was fine, the output looks correct for me.

How do you start subtle and what applications are usually running? That is really weird, the first part of the code you tried even lists a wrong number of clients.

#15 Updated by Lukas Schreiner over 12 years ago

After gentoo is booted, the command "startx" will be executed with my user.
Following programs will be executed:
- notify-osd
- xscreensaver
- ssh-agent
- urxvtd
- mutt
- weechat
- firefox
- feh (to set the background)
and finally subtle.

In the xinitrc there is only an execution triggered for a bash script which runs all the applications for me in the background.

#16 Updated by Christoph Kappel over 12 years ago

Can you just start X, subtle and urxvt and run subtler just to verify if this still fails? And what happens when you do this in your current session: DISPLAY=:0 subtler -cl

#17 Updated by Lukas Schreiner over 12 years ago

Trying to execute subtler -cl with DISPLAY environment in the current session does not work.
Same error as reported.

But the tip with the startx manually and urxvt was correct. What's going wrong on startup?

#18 Updated by Christoph Kappel over 12 years ago

Actually no idea, I just wonder why your root window has an attached icon, that is pretty odd.

Can you start your other apps and check if the behaviour of subtler changes?

#19 Updated by Lukas Schreiner over 12 years ago

Yes it is still working.

But thats a crazy thing. In xterm i get still the same error.
In urxvt subtler is working.

#20 Updated by Christoph Kappel over 12 years ago

Did you try it in urxvt or xterm before?

#21 Updated by Lukas Schreiner over 12 years ago

Urxvt is my default terminal and thats what i've tried before.

#22 Updated by Christoph Kappel over 12 years ago

Hm, when you try it in xterm you have the same error like before? Wow that is so odd.

#23 Updated by Lukas Schreiner over 12 years ago

Yes.

And if it would actually working under xterm where it is not working under urxvt it would be really funny :)

#24 Updated by Christoph Kappel over 12 years ago

And when you start your system like you normally do it still doesn't work neither in xterm nor in urxvt, right?

#25 Updated by Lukas Schreiner over 12 years ago

So, here i'm again.
When I start my system like i do it normally it still doesn't work.
Error still in urxvt and xterm.

The starting order of applications and subtle makes no different (i tried to start subtle first and then the rest).

I'm using the fish shell as default shell. Maybe this can be the problem? I will try again with the bash shell as default.

#26 Updated by Christoph Kappel over 12 years ago

And that doesn't happen in urxvt, when you just start subtle and your urxvt. Don't think that fish is related to that problem, it just reads input and execs binaries.

#27 Updated by Lukas Schreiner over 12 years ago

You will laugh...
I've changed my default shell to bash. I've restarted and now i have the same thing as i had with the manual call:
urxvt works - xterm does not work :)

#28 Updated by Christoph Kappel over 12 years ago

That is pretty weird. Your init shellscript uses fish as well? And which shells do both your terms use, when you run subtler?

#29 Updated by Lukas Schreiner over 12 years ago

My init scripts runs all with bash.
But the fist su which runs the shell scripts is running with fish shell.
That should be no problem in future. I can fix it with a parameter.

Both are using bash now when i start subtler at the moment.

#30 Updated by Christoph Kappel over 12 years ago

Still I don't understand how a shell can change the data subtler wants to fish, except it does something nasty with the DISPLAY variable.

BTW: You might want to join #subtle on freenode, comments in a ticket are a really bad chat. ;)

#31 Updated by Christoph Kappel over 12 years ago

  • Status changed from Unconfirmed to Not a bug

Also available in: Atom PDF