Pinta 1.6 fails to load after installing all available addins

Bug #1428028 reported by Alexandre Prokoudine
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Pinta
Fix Committed
Medium
Unassigned

Bug Description

1. Installed Pinta 1.6 on Fedora 21 from source code.
2. Installed all available addins. Four of them threw cryptic error warnings at me (see attached screenshots).
3. Restarted Pinta to see the addins.
4. Pinta refused to start:

$ pinta

(Pinta:24989): GLib-CRITICAL **: Source ID 5 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 4 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 3 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 6 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 9 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 10 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 14 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 13 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 12 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 11 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 16 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 15 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 17 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 19 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 18 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 25 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 24 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 23 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 22 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 21 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 20 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 29 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 28 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 27 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 26 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 33 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 32 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 31 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 30 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 38 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 37 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 36 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 35 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 34 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 39 was not found when attempting to remove it

(Pinta:24989): GLib-CRITICAL **: Source ID 59 was not found when attempting to remove it
Missing method get_CurrentLocalizer in assembly /home/alex/.config/mono.addins/addins/BlockBrush.0.1.1/BlockBrush.dll, type Mono.Addins.AddinManager

System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at Pinta.Core.PaintBrushManager+BrushSorter.Compare (Pinta.Core.BasePaintBrush x, Pinta.Core.BasePaintBrush y) [0x00000] in <filename unknown>:0
  at System.Array.qsort[BasePaintBrush,BasePaintBrush] (Pinta.Core.BasePaintBrush[] keys, Pinta.Core.BasePaintBrush[] items, Int32 low0, Int32 high0, IComparer`1 comparer) [0x00000] in <filename unknown>:0
  at System.Array.SortImpl[BasePaintBrush,BasePaintBrush] (Pinta.Core.BasePaintBrush[] keys, Pinta.Core.BasePaintBrush[] items, Int32 index, Int32 length, IComparer`1 comparer) [0x00000] in <filename unknown>:0
  at System.Array.Sort[BasePaintBrush] (Pinta.Core.BasePaintBrush[] array, Int32 index, Int32 length, IComparer`1 comparer) [0x00000] in <filename unknown>:0
  at System.Collections.Generic.List`1[Pinta.Core.BasePaintBrush].Sort (IComparer`1 comparer) [0x00000] in <filename unknown>:0
  at Pinta.Core.PaintBrushManager.AddPaintBrush (Pinta.Core.BasePaintBrush paintBrush) [0x00000] in <filename unknown>:0
  at BlockBrush.BlockBrushExtension.Initialize () [0x00000] in <filename unknown>:0
  at Pinta.MainWindow.OnExtensionChanged (System.Object s, Mono.Addins.ExtensionNodeEventArgs args) [0x00000] in <filename unknown>:0
  at Mono.Addins.ExtensionNode.add_ExtensionNodeChanged (Mono.Addins.ExtensionNodeEventHandler value) [0x00000] in <filename unknown>:0
Missing method .ctor in assembly /home/alex/.config/mono.addins/addins/PintaUploadAddin.0.1.1/PintaUploadAddin.dll, type Mono.Addins.AddinDependencyAttribute
Can't find custom attr constructor image: /home/alex/.config/mono.addins/addins/PintaUploadAddin.0.1.1/PintaUploadAddin.dll mtoken: 0x0a000063

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
  at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
  at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0
  at Mono.Addins.TypeExtensionNode.CreateInstance () [0x00000] in <filename unknown>:0
  at Mono.Addins.InstanceExtensionNode.GetInstance () [0x00000] in <filename unknown>:0
  at Mono.Addins.ExtensionNodeEventArgs.get_ExtensionObject () [0x00000] in <filename unknown>:0
  at Pinta.MainWindow.OnExtensionChanged (System.Object s, Mono.Addins.ExtensionNodeEventArgs args) [0x00000] in <filename unknown>:0
  at Mono.Addins.ExtensionNode.add_ExtensionNodeChanged (Mono.Addins.ExtensionNodeEventHandler value) [0x00000] in <filename unknown>:0
Missing method get_CurrentLocalizer in assembly /home/alex/.config/mono.addins/addins/NightVisionEffect.1.2.1/NightVisionAddin.dll, type Mono.Addins.AddinManager

System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at Pinta.Core.EffectsManager.RegisterEffect (Pinta.Core.BaseEffect effect) [0x00000] in <filename unknown>:0
  at NightVisionAddin.NightVisionExtension.Initialize () [0x00000] in <filename unknown>:0
  at Pinta.MainWindow.OnExtensionChanged (System.Object s, Mono.Addins.ExtensionNodeEventArgs args) [0x00000] in <filename unknown>:0
  at Mono.Addins.ExtensionNode.add_ExtensionNodeChanged (Mono.Addins.ExtensionNodeEventHandler value) [0x00000] in <filename unknown>:0
Missing method get_CurrentLocalizer in assembly /home/alex/.config/mono.addins/addins/GenerateGrid.1.0/GenerateGridAddin.dll, type Mono.Addins.AddinManager

System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at Pinta.Core.EffectsManager.RegisterEffect (Pinta.Core.BaseEffect effect) [0x00000] in <filename unknown>:0
  at GenerateGridAddin.GenerateGridAddin.Initialize () [0x00000] in <filename unknown>:0
  at Pinta.MainWindow.OnExtensionChanged (System.Object s, Mono.Addins.ExtensionNodeEventArgs args) [0x00000] in <filename unknown>:0
  at Mono.Addins.ExtensionNode.add_ExtensionNodeChanged (Mono.Addins.ExtensionNodeEventHandler value) [0x00000] in <filename unknown>:0
Missing method get_CurrentLocalizer in assembly /home/alex/.config/mono.addins/addins/BlockBrush.0.1.1/BlockBrush.dll, type Mono.Addins.AddinManager

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at Pinta.Tools.PaintBrushTool.RebuildBrushComboBox () [0x00000] in <filename unknown>:0
  at Pinta.Tools.PaintBrushTool.OnBuildToolBar (Gtk.Toolbar tb) [0x00000] in <filename unknown>:0
  at Pinta.Core.BaseTool.DoBuildToolBar (Gtk.Toolbar tb) [0x00000] in <filename unknown>:0
  at Pinta.Core.ToolManager.SetCurrentTool (Pinta.Core.BaseTool tool) [0x00000] in <filename unknown>:0
  at Pinta.Core.ToolManager.SetCurrentTool (System.String tool) [0x00000] in <filename unknown>:0
  at Pinta.MainWindow..ctor () [0x00000] in <filename unknown>:0
  at Pinta.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies.
File name: 'Mono.Addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
  at Pinta.Tools.PaintBrushTool.RebuildBrushComboBox () [0x00000] in <filename unknown>:0
  at Pinta.Tools.PaintBrushTool.OnBuildToolBar (Gtk.Toolbar tb) [0x00000] in <filename unknown>:0
  at Pinta.Core.BaseTool.DoBuildToolBar (Gtk.Toolbar tb) [0x00000] in <filename unknown>:0
  at Pinta.Core.ToolManager.SetCurrentTool (Pinta.Core.BaseTool tool) [0x00000] in <filename unknown>:0
  at Pinta.Core.ToolManager.SetCurrentTool (System.String tool) [0x00000] in <filename unknown>:0
  at Pinta.MainWindow..ctor () [0x00000] in <filename unknown>:0
  at Pinta.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0

I solved this by removing the contents of ~/.config/mono.addins/addins/, but seriously, if I didn't run Pinta from terminal, I wouldn't even be able to tell, why Pinta doesn't launch.

Can't you make it drop faulty plugins at startup, keep running, and notify the user about newly discovered issues in a human language?

Tags: addins
Revision history for this message
Alexandre Prokoudine (alexandre-prokoudine) wrote :
Revision history for this message
Alexandre Prokoudine (alexandre-prokoudine) wrote :
Revision history for this message
Alexandre Prokoudine (alexandre-prokoudine) wrote :
Revision history for this message
Alexandre Prokoudine (alexandre-prokoudine) wrote :
description: updated
Robert Nordan (rpvn)
Changed in pinta:
status: New → Confirmed
status: Confirmed → New
Revision history for this message
Robert Nordan (rpvn) wrote :

Looks like the immediate problem is caused by the add-ins being built against Mono.Addins 1.0, and it not being available on your Fedora system despite being released in 2012. Pinta gets built against whatever's installed on your system, but since the add-ins are prebuilt on someone else's computer they're built against what they have running. (Debian/Ubuntu has Mono.Addins 1.0, the newest version is 1.2) I'm not sure if there's any easy fixes here.

The other side of it is what happens when they fail to install and/or load properly. This should of course be handled better. I'm not sure if we can fix this in our code alone, or if things also need to be changed in Mono.Addins upstream, since it provides all the installation facilities. Which obviously would be a (somehwat ironic) problem since the direct cause of your issues is an unupdated Mono.Addins.

Revision history for this message
Cameron White (cameronwhite91) wrote :

We definitely should try to figure something out for this for 1.7

It might be interesting to look into why not all of the addins resulted in these messages. It looks like the WebP add-in worked okay for you?

Changed in pinta:
importance: Undecided → High
milestone: none → 1.7
status: New → Confirmed
Revision history for this message
Cameron White (cameronwhite91) wrote :

I don't think this is a release blocker for 1.7, since mono-addins 1.0 is widely available now (and the existing builds of add-ins are still compatible with 1.7).
Going forward, I think we just need to be careful to build addins against the minimum-supported version of mono-addins.

Changed in pinta:
importance: High → Medium
milestone: 1.7 → none
tags: added: addins
Revision history for this message
Cameron White (cameronwhite91) wrote :

This is obsolete for Pinta 2.2, since we'll now be using a consistent version of Mono.Addins from NuGet

Changed in pinta:
milestone: none → 2.2
status: Confirmed → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.