►
Description
Issue: https://gitlab.com/gitlab-org/gitlab/-/issues/425392
Possibly similar to: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124271
Sorry that most of this video is just us walking through debugger breakpoints. We don't end up finding anything but Malcolm later on DID figure it out!! See https://gitlab.com/gitlab-org/gitlab/-/issues/425392#note_1568228654
A
A
B
A
C
A
This
is
specific
to
issues
it's
specifically
when
an
award
emojis
on
it
and
I
know
how
to
fix
it,
which
is
if
I
remove
inverse
of
so.
If
I
remove
this
inverse
of
from
the
have
money
award
emoji,
it
works.
Everything
saves
as
expected,
and
so
you
could
say
well
just
remove
that,
and
maybe
that's
something
you
should
do,
but
I
I
really
want
to
understand
why
I
really
don't
want
to
understand
why?
Because
it's
so
weird
to
know
this
is
happening
I'm
just
this
one
model
when
they
all
have
this
defined
on
them.
A
A
Any
other
has
many
relations,
so
it
could
also
be.
Labels
are
another
thing
that
another
relation
on
an
issue
or
a
merge
request
not
on
the
snippet.
So
I
didn't
add
labels
to
this
because
Snippets
don't
have
labels,
but
if
this
test
were
just
for
issues
in
merge,
requests,
I
could
also
create
labels
and
the
labels
would
fail
to
save
as
well.
A
A
Yes,
exactly
yeah,
you
get
like
really
deep
and
then
you're
like
well
just
step
forward
and
then
you're
in
this
weird
place.
But
basically
what
I
observed
is
that
the
parent
object,
because
when
you
call
save
the
way
that
the
child
of
the
other
objects
are
saved
on
a
parent
active
record
class,
is
with
this
auto
save
associations
module.
A
It
defines
a
method
on
each
one
and
when
you
first
go
in
that,
you
can
see
that
the
parent
that
the
issue
or
merge
across
or
whatever
it
is,
has
notes
on
it
and
then
at
a
certain
point
that
gets
nulled
out.
So
basically,
like
my
hypothesis,
is
that
somewhere
the
object.
Id
changes
like
it's
reloading,
the
parent
object.
So
it
loses
all
the
other
sub-relations,
because
the
award
Emoji
is
saved
first,
so
I
think
somewhere
in
the
process
of
stating
the
award
Emoji
because
of
the
inverse
of
attribute
being
set.
A
So
I
lost
a
week
in
my
life
to
this
I'm
going
to
week,
two
I
just
I'm,
so
determined
to
understand
the
problem
so
anyways.
Let's
do
we
want
to
look
at
the
other.
A
This
was
the
other
issue
that
somebody
pointed
me
to
that
they
said
felt
related
and
it
does
feel
related
because
it's
related
to
inverse
of
and
I
went
deep
into
inverse
of
and
I
I
gotta
say:
I,
don't
fully
understand
it
because
it
used
to
be
that
you
had
to
set
inverse
of,
and
now
you
actually
don't
inverse
Episode
by
default,
but
in
row,
seven
there's
an
option
and
we
have
it
set
to
nil,
there's
an
option
to
automatically
set
inverse
of,
and
we're
not
using
that
yet
so.
C
A
I
would
love
to
just
more
deeply
understand
inverse
of
so
that's
what
this
blog
post
is
about.
B
A
A
So
I
think
that's
what
like
the
Ruby
on
Rose
guides
say
like
well,
I,
don't
know
the
Ruby
on
girls
guide
to
say
actually
nothing
very
helpful.
This
is
not
very
helpful
yeah
and
that
you
it
used
to
be
that
sorry.
Let
me
look
at
this
J.
Why
I
had
I
have
too
many
branches?
I
had
a
branch
because
there's
it
used
to
be
there
for
polymorphic
relationships
you
like
had
to
include
it
or
something
right
and
we
have
one
to
find
somewhere.
That's
like
oh
here
it
goes
a
general
case.
A
A
Yeah,
how
do
I
do
view
like
the
slash
commands
available
here?
No,
not
that
like
shortcuts.
A
A
A
Sorry,
let's
Implement
that
actually,
let's
give
ourselves
a
picture:
merger
Quest,
new
merch
request,
like
that's,
select,
first
branch.
A
A
This
whole
universe
was
needed
for
something
I.
C
A
A
A
Which
again
makes
me
want
like
think
that
this
is
like
a
memory
reloading
issue,
because
it's
like
inverse
off
is
doing
a
memory
optimization.
So
something
is
happening.
It's
looking
in
memory,
and
so
maybe
it's
somehow
doing
a
Reload
in
this
scenario
and
that's
why
the
other
children
are
being
lost.
A
A
B
A
Which
we
have
a
set
to
false
config.
A
B
Is
this
one
of
the?
Could
you
just
blame
that
because
I
think
there's
stuff
in
the
config
that
we
there
was
kind
of
bulk
added
when
we
updated
to
row
seven
to
just
to
just
maintain
the
rail
6
Behavior
yeah.
B
A
So
nobody
has
really
analyzed
this
and
that's
why
I
was
like
oh
I'm
already
in
here.
Maybe
I'll
set
it
to
True,
but
that
did
not
solve
this
problem
also
like
yeah,
that
did
not
solve
this
problem.
C
A
A
B
A
A
A
A
A
C
B
A
C
A
C
A
B
So
maybe,
if
can
you
just
drop
in
a
little
bit
earlier
with
binding
and
check
before
you've
executed
the
thing.
A
Really
fun
I
think
we
can
do
okay,
so
the
first
so
we'll
say
what
is
awardable
right
now.
This
isn't.
This
is
an
issue
and
say
note:
is
that.
A
C
B
B
A
Good
question,
so
it
looks
like
notable
typist
issue
or
is
notable
ID
10.,
so
issue
dot
find
10.
It
might
just
be
like.
A
There's
because
what
is
this.
B
Do
you
think
the
merge
request
Factory?
Could
we
could
we
simplify
things
further
and
just
I
know
you've
got
the
iteration
through
the
when
we're
going
through
the
three
types?
Can
we
just
do
the
one.
A
So
we
just
have
the
one
run
again:
yeah.
C
A
A
C
A
A
B
A
A
A
A
A
A
B
I
think,
if
you
ton
of
broadband,
doesn't
it
I
think
if
you
hit
enter
I,
think
every
page
so
lost.
C
A
B
A
C
A
So
this
is
just
gonna,
go
we're
not
in
suppressor
we're
not
in
suppressor
registry.
So
it's
gonna.
A
A
A
A
A
This
is
by
the
way,
the
method,
save
collection
Association,
which
is
automatically
it's
it's
the
method
that
is
invoked
by
the
other
method
in
an
active
record
relation
that
basically
says:
okay,
save
all
of
the
sub-relations
on
this
object,
so
it's
being
called
here
for
a
word
Emoji,
but
then
like
it,
never
ends
up
getting
called
for
other
relations,
because
this
call
for
a
word
Emoji,
which
I
think
happens.
First
Mills
out
all
the
other
sub
relations.
A
Papa
has
not
needs
at
least
so.
I'm
gonna
buy
a
bug
there
and
run
this
test
and
we'll
see
spring
has
truly
been
stopped.
You
never
run
no
until
you
try.
B
A
I
just
want
to
know
that
here
so
self
is
the
issue
this.
The
issue
has
already
been
persisted.
It
has
an
ID
and
then
notes
is
here.
This
is
the
note
and
then
record
in
this
context
is
the
award
Emoji.
So
this
is
the
Callback
that's
happening
when
it's
trying
to
save
the
children
of
the
issue,
so
it's
being
called
right
now
for
a
word
emoji
and
Theory.
It
should
also
be
called
for
notes,
but
it
never
happens
so
help.
How
do
I
watch
something
VAR,
okay,.
B
B
A
B
C
A
So
once
we
get
into
here,
we
still
know
who
the
owner
is
like
the
own.
We
have
access
to
a
variable
called
owner,
and
that
is
the
issue
but
and
we
can
get
owner.notes
there,
but
the
variable
name
is
different.
A
A
A
We're
in
insert
record
so
self
is
now
it
has
been
the
association
and
then
in
self,
and
then
record
is
still
a
word
emoji
and
then
owner
is
the
issue
owner
dot
notes
is
still
a
thing.
A
Let's
look:
what
are
the
option?
There's
no
through
there
is
an
inverse
of.
A
A
A
A
A
Was
a
there's
a
part
there's
a
time
and
I
was
like
what,
if
it's
like
a
Threading
issue,
and
it's
like
no,
no,
it's
definitely
just
related
to
inverse
of
so
I.
Don't
even
know
why
I'm
in
here,
but,
like
you
know
just
gotta,
see
if
you
see
something:
okay,
we're
almost
out
we're
almost
out
we're
almost
out.
B
A
A
A
A
C
A
A
A
A
A
A
Owner
there's
no
owner,
oh
so
self
is
the
word
Emoji
now.
A
C
A
Yeah,
oh
you're
right,
but
we
don't
have
access
to
it
in
memory
in
terms
because
the
note
hasn't
been
saved
yet
so
we
don't
have
a
way
of
Acts
knowing
whether
this
is
wordable
like
we
want
to
be
able
to
access
the.
A
It
was
never
well
in
this
context.
It
was
called
it
was
first
self
and
then,
in
the
context
of
the
ACT
record
collection,
it
was
known
as
the
owner,
so
we
had
owner
and
record.
So
first
we
had
self
like
the
issue
with
salt.
Then
we
went
into
the
active
record
collection
Association
and
that
self
was
the
collection,
it's
the
association
itself,
but
it
had
access
to
both
the
owner
and
the.
B
A
B
This
one
not
have
does
this
one
not
have
access
to
awardable.
A
A
C
A
Then
it
saves
the
associations
and,
like
an
active
records,
smart,
it
seems
like
if
you
have
a
validation
on
the
parent,
that
it
has
to
have
the
child
like.
It
knows
to
not
fire
that
until
after
the
children
have
been
saved
or
something
like
it
does
interesting
stuff.
This
is
all
the
contests
are
just
calling
issue.save,
but
the
transaction
that
actually
saves
the
or
the
the
database
call
actually
saves.
The
issue
has
already
happened
now,
we're
saying
the
awardable
and
then
the
note
is
still
here
so
that
actually
isn't
memory.
A
Did
I
did
it
at
some
point?
I
did
that
at
some
point,
but
I
didn't
do
it
right
now,
which
is
annoying?
That's.
A
It
does
the
fact
that
now
we
can,
we
can
do
it,
because
we.
A
B
A
C
A
B
C
A
B
A
B
Like
way
outside
my
comfort
zone
here,
but
I
feel
like,
if
we
can
do
that
and
possibly
we
could
just
let
it
run
and
it
will
break
out
when,
with.
C
The
stop
option
yeah.
C
C
An
alternative
be
to
check
if
it
still
has
the
note
and
if
not
then
buy
buck.
A
C
A
In
insert
record
and
in
this
context.
A
C
A
A
It
might
result
in
at
in
a
change
an
active
record
patch.
If
we
can
truly
understand
it.
B
A
No,
that
was
a
spring
issue
yeah,
so
I
was
okay
effect,
a
thumbs
up
and
then,
if
I
change
it
to
clapping,
but
that
was
a
spring
issue.
We're
like
spring.