Getting SEQ_NOT_DONE Fatal error

My test case body() task looks similar to below:

#######
for (int i = 0; i <2; i++)
begin
fork
begin
sequence_1.start(master_sqr[0]);
end
join_none;
fork
begin
sequence_2.start(master_sqr[0]);
end
join_none;
$display (“TEST PROGRESS: Before 500ns delay”);
#500ns;
$display (“TEST PROGRESS: After 500ns delay”);
fork
begin
sequence_2.start(master_sqr[0]);
end
join_none;
fork
begin
sequence_1.start(master_sqr[0]);
end
join_none;
end

###########

When I run the test case, the following FATAL error is observed after the 500ns delay, when the sequence’s start is called the second time.

UVM_FATAL @ 1899059: uvm_test_top.m_m0s8peri_env.cm0_master_0.sequencer@@m0s8peri_seq_ahb_slave_16bit_access_seq[0] [SEQ_NOT_DONE] Sequence uvm_test_top.m_m0s8peri_env.cm0_master_0.sequencer.sequence_2 already started

Could someone help me understand what is wrong in the above piece of code ??

Regards,

In reply to San:

I’d guess it’s because you’re trying to start sequence_2 a second time, before the first time got a chance to finish.