This file is indexed.

/usr/share/gjs-1.0/valgrind/gjs.supp is in libgjs-dev 1.52.1-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
# Valgrind suppressions file for GJS
# This is intended to be used in addition to GLib's glib.supp file.

# We leak a small wrapper in GJS for each registered GType.

{
   gtype-wrapper-new
   Memcheck:Leak
   match-leak-kinds: definite
   fun:_Znwm
   fun:gjs_gtype_create_gtype_wrapper
}

{
   gtype-wrapper-qdata
   Memcheck:Leak
   match-leak-kinds: possible
   ...
   fun:type_set_qdata_W
   fun:g_type_set_qdata
   fun:gjs_gtype_create_gtype_wrapper
}

{
   g_type_register_fundamental never freed
   Memcheck:Leak
   fun:calloc
   ...
   fun:g_type_register_fundamental
   ...
}

# SpiderMonkey leaks

{
   mozjs-thread-stack-init
   Memcheck:Leak
   match-leak-kinds: possible
   fun:calloc
   fun:allocate_dtv
   fun:_dl_allocate_tls
   fun:allocate_stack
   fun:pthread_create@@GLIBC_2.2.5
   fun:_ZN7mozilla9TimeStamp20ComputeProcessUptimeEv
   fun:_ZN7mozilla9TimeStamp15ProcessCreationERb
   fun:_ZN2JS6detail25InitWithFailureDiagnosticEb
   fun:JS_Init
}

{
   mozjs-thread-stack-new-context
   Memcheck:Leak
   match-leak-kinds: possible
   fun:calloc
   fun:allocate_dtv
   fun:_dl_allocate_tls
   fun:allocate_stack
   fun:pthread_create@@GLIBC_2.2.5
   fun:_ZN2js6Thread6createEPFPvS1_ES1_
   fun:init<void (&)(void*), js::HelperThread*>
   fun:_ZN2js23GlobalHelperThreadState17ensureInitializedEv
   fun:_ZN9JSRuntime4initEjj
   fun:init
   fun:NewContext
   fun:_Z13JS_NewContextjjP9JSContext
}

{
   mozjs-gc-helper-thread-mutex-guard
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:js_malloc
   fun:js_new<mozilla::Vector<const js::Mutex*> >
   fun:_ZN2js5Mutex14heldMutexStackEv.part.*
   fun:heldMutexStack
   fun:_ZN2js5Mutex4lockEv
   fun:LockGuard
   fun:_ZN2js25AutoLockHelperThreadStateC1EON7mozilla6detail19GuardObjectNotifierE
   fun:_ZN2js12HelperThread10threadLoopEv
   fun:callMain<0*>
   fun:_ZN2js6detail16ThreadTrampolineIRFvPvEJPNS_12HelperThreadEEE5StartES2_
   fun:start_thread
   fun:clone
}

# Various things that I don't believe are related to GJS

{
   gl-dispatch-init
   Memcheck:Leak
   match-leak-kinds: possible
   ...
   fun:__glDispatchInit
}

{
   gl-dispatch-register-stub-callbacks
   Memcheck:Leak
   match-leak-kinds: possible
   ...
   fun:__glDispatchRegisterStubCallbacks
}

{
   gtk-style-context
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc
   fun:g_malloc
   ...
   fun:gtk_css_node_declaration_make_writable
   ...
   fun:gtk_style_constructed
}

{
   gtk-style-context2
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc
   fun:g_malloc
   ...
   fun:gtk_css_node_declaration_make_writable_resize
   ...
   fun:gtk_style_constructed
}

# https://bugs.freedesktop.org/show_bug.cgi?id=105466
{
   freedesktop-bug-105466
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   ...
   fun:FcConfigSubstituteWithPat
   fun:_cairo_ft_resolve_pattern
   fun:_cairo_ft_font_face_get_implementation
   fun:cairo_scaled_font_create
   fun:_cairo_gstate_ensure_scaled_font
   fun:_cairo_gstate_get_scaled_font
   fun:_cairo_default_context_get_scaled_font
   fun:cairo_show_text
}

# SpiderMonkey data races

# These are in SpiderMonkey's atomics / thread barrier stuff so presumably
# locking is working correctly and helgrind just can't detect it?

{
   mozjs-helgrind-atomic-load-1
   Helgrind:Race
   fun:load
   fun:load
   fun:operator unsigned int
}

{
   mozjs-helgrind-atomic-load-2
   Helgrind:Race
   fun:load
   fun:load
   fun:operator bool
}

{
   mozjs-helgrind-atomic-store
   Helgrind:Race
   fun:store
   fun:store
   fun:operator=
}

# Presumably this one is OK since the function is called "thread safe"?!
{
   mozjs-helgrind-thread-safe-lookup
   Helgrind:Race
   ...
   fun:lookup
   fun:readonlyThreadsafeLookup
   fun:readonlyThreadsafeLookup
}

{
   mozjs-helgrind-jit-code
   Helgrind:Race
   obj:*
   ...
   fun:_ZL13EnterBaselineP9JSContextRN2js3jit12EnterJitDataE
}

{
   mozjs-helgrind-probably-jit-code
   Helgrind:Race
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
}